/* VR Brandify Kit — layout, components and motion. Native Elementor settings carry spacing/colour/type; this file
   adds what the panel can't: grids, effects, header/footer markup, form skin and animation. */

:root {
	--vb-purple: #6B1E8F;
	--vb-purple8: #3A0B52;
	--vb-bg: #0E0616;
	--vb-bg2: #1A0D27;
	--vb-mag: #D41FD0;
	--vb-pink: #F11FF0;
	--vb-lav: #F7F0FB;
	--vb-lav2: #E9DAF3;
	--vb-ink: #1A0B26;
	--vb-body: #5B4A68;
	--vb-soft: #CDBFD9;
	--vb-grad: linear-gradient(115deg, #7A1FA2, #E11DD8);
	--vb-ease: cubic-bezier(.2, .8, .2, 1);
	--vb-head: 'Sora', 'Inter', system-ui, sans-serif;
}

html { scroll-behavior: smooth; }
body.vb-site { overflow-x: clip; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
.vb-site img { max-width: 100%; height: auto; }
.vb-site .elementor-widget-heading .elementor-heading-title { font-family: var(--vb-head); }
.vb-site .vb-sec { position: relative; overflow: hidden; isolation: isolate; }
.vb-site .vb-sec > .vb-wrap, .vb-site .vb-sec > .vb-abs ~ .vb-wrap { position: relative; z-index: 1; }
.vb-site .vb-abs { position: absolute !important; inset: 0; width: 100% !important; height: 100%; margin: 0 !important; pointer-events: none; z-index: 0; overflow: hidden; }
.vb-site .vb-abs > .elementor-widget-container, .vb-site .vb-abs .vb-hero__bg, .vb-site .vb-abs > div { position: absolute; inset: 0; }
.vb-site .vb-dark { color: #fff; }

/* max-width helpers (mirror Elementor's own 4-class max-width rule so they win) */
.vb-site .elementor.elementor .e-con > .elementor-widget.vb-mw { width: 100%; }
.vb-site .elementor.elementor .e-con > .elementor-widget.vb-mw-560 { max-width: 560px; }
.vb-site .elementor.elementor .e-con > .elementor-widget.vb-mw-600 { max-width: 600px; }
.vb-site .elementor.elementor .e-con > .elementor-widget.vb-mw-640 { max-width: 640px; }
.vb-site .elementor.elementor .e-con > .elementor-widget.vb-mw-680 { max-width: 680px; }
.vb-site .elementor.elementor .e-con > .elementor-widget.vb-mw-860 { max-width: 860px; }

/* ---------- gradient text ---------- */
.vb-grad { background: linear-gradient(100deg, #B65CFF 0%, #F11FF0 38%, #FF8AF8 62%, #B65CFF 100%); background-size: 240% 100%; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; animation: vbShift 7s linear infinite; }
.vb-js .vb-split .vb-grad { background: none; -webkit-text-fill-color: initial; animation: none; }
.vb-js .vb-split .vb-grad .vb-w > span { background: linear-gradient(100deg, #B65CFF 0%, #F11FF0 38%, #FF8AF8 62%, #B65CFF 100%); background-size: 240% 100%; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; animation: vbShift 7s linear infinite; padding-right: .04em; }
@keyframes vbShift { to { background-position: -240% 0; } }

/* ---------- eyebrow pill ---------- */
.vb-site .vb-eyebrow .elementor-heading-title { display: inline-flex; align-items: center; gap: 10px; padding: 8px 16px 8px 14px; border-radius: 999px; background: rgba(107, 30, 143, .07); border: 1px solid rgba(107, 30, 143, .16); }
.vb-site .vb-eyebrow .elementor-heading-title::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--vb-grad); box-shadow: 0 0 0 4px rgba(212, 31, 208, .16); animation: vbPulse 2.4s ease-in-out infinite; flex: none; }
.vb-site .vb-eyebrow--dark .elementor-heading-title { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .14); }
.vb-site .vb-eyebrow--onbrand .elementor-heading-title { background: rgba(255, 255, 255, .14); border-color: rgba(255, 255, 255, .3); color: #fff; }
.vb-site .vb-eyebrow--onbrand .elementor-heading-title::before { background: #fff; box-shadow: 0 0 0 4px rgba(255, 255, 255, .25); }
@keyframes vbPulse { 50% { box-shadow: 0 0 0 7px rgba(212, 31, 208, .04); } }

/* ---------- word-split headline reveal ---------- */
.vb-js .vb-split .vb-w { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .14em; margin-bottom: -.14em; }
.vb-js .vb-split .vb-w > span { display: inline-block; transform: translateY(112%); transition: transform .9s var(--vb-ease); transition-delay: calc(var(--wi, 0) * 55ms); will-change: transform; }
.vb-js .vb-split.is-in .vb-w > span { transform: none; }
.vb-editor .vb-split .vb-w > span, .vb-editor .vb-reveal { transform: none !important; opacity: 1 !important; }

/* ---------- scroll reveal ---------- */
.vb-js .vb-reveal { opacity: 0; transform: translateY(36px); transition: opacity .9s ease, transform .9s var(--vb-ease); transition-delay: calc(var(--i, 0) * 90ms); }
.vb-js .vb-reveal.is-in { opacity: 1; transform: none; }
.vb-js .vb-reveal.is-done { transition: transform .4s var(--vb-ease), box-shadow .4s var(--vb-ease), border-color .3s ease, background-color .3s ease; transition-delay: 0s; }

/* ---------- grids ---------- */
.vb-site .e-con.vb-grid { display: grid; width: 100%; }
.vb-site .e-con.vb-grid > * { min-width: 0; }
.vb-site .e-con.vb-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.vb-site .e-con.vb-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.vb-site .e-con.vb-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1024px) {
	.vb-site .e-con.vb-grid--3, .vb-site .e-con.vb-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
	.vb-site .e-con.vb-grid--2, .vb-site .e-con.vb-grid--3, .vb-site .e-con.vb-grid--4 { grid-template-columns: minmax(0, 1fr); }
}
.vb-site .e-con.e-child { --width: auto; }
.vb-site .e-con.vb-grid > .e-con { --width: 100%; }

/* ---------- buttons ---------- */
.vb-site .vb-btn .elementor-button { transition: transform .35s var(--vb-ease), box-shadow .35s var(--vb-ease), background-color .3s, color .3s, border-color .3s; position: relative; overflow: hidden; font-family: var(--vb-head); letter-spacing: -.005em; }
.vb-site .vb-btn:not(.vb-btn--link):not(.vb-btn--linklight) .elementor-button:hover { transform: translateY(-3px); }
.vb-site .vb-btn--arrow .elementor-button-text::after { content: "→"; display: inline-block; margin-left: 10px; transition: transform .35s var(--vb-ease); }
.vb-site .vb-btn--arrow .elementor-button:hover .elementor-button-text::after { transform: translateX(5px); }
.vb-site .vb-btn--grad .elementor-button::before { content: ""; position: absolute; inset: 0; background: linear-gradient(110deg, transparent 30%, rgba(255, 255, 255, .35) 50%, transparent 70%); transform: translateX(-120%); transition: transform .7s var(--vb-ease); }
.vb-site .vb-btn--grad .elementor-button:hover::before { transform: translateX(120%); }
.vb-site .vb-btn .elementor-button:visited { color: inherit; }
.vb-site .vb-btn--grad .elementor-button:visited, .vb-site .vb-btn--grad .elementor-button { color: #fff; }
.vb-site .vb-btn--white .elementor-button:visited { color: var(--vb-purple8); }
.vb-site .vb-btn--dark .elementor-button:visited { color: #fff; }
.vb-site .vb-btn--glass .elementor-button:visited { color: #fff; }
.vb-site .vb-btn--glass .elementor-button:hover { color: var(--vb-bg); }
.vb-btn-pill { display: inline-flex; align-items: center; gap: 12px; padding: 17px 30px; border-radius: 999px; background: var(--vb-grad); color: #fff !important; font: 600 16px/1 var(--vb-head); text-decoration: none; box-shadow: 0 14px 32px -12px rgba(212, 31, 208, .7); transition: transform .35s var(--vb-ease), box-shadow .35s; }
.vb-btn-pill:hover { transform: translateY(-3px); box-shadow: 0 20px 40px -14px rgba(212, 31, 208, .9); }
.vb-btn-pill svg { width: 18px; height: 18px; transition: transform .35s var(--vb-ease); }
.vb-btn-pill:hover svg { transform: translateX(4px); }
.vb-btn-pill--ghost { background: transparent; box-shadow: none; border: 1.5px solid rgba(255, 255, 255, .3); }

/* ---------- icons ---------- */
.vb-svg { display: block; width: 24px; height: 24px; }
.vb-ic__box { display: grid; place-items: center; width: 58px; height: 58px; border-radius: 18px; background: linear-gradient(145deg, rgba(122, 31, 162, .12), rgba(225, 29, 216, .14)); color: var(--vb-purple); transition: background .4s, color .4s, transform .5s var(--vb-ease); }
.vb-ic__box .vb-svg { width: 26px; height: 26px; }
.vb-ic--dark .vb-ic__box { background: rgba(255, 255, 255, .07); color: #F39BF7; border: 1px solid rgba(255, 255, 255, .1); }

/* ---------- service / value cards ---------- */
.vb-site .e-con.vb-card { position: relative; text-decoration: none; overflow: hidden; transition: transform .45s var(--vb-ease), box-shadow .45s var(--vb-ease), border-color .3s; box-shadow: 0 1px 0 rgba(26, 11, 38, .02); }
.vb-site .e-con.vb-card::before { content: ""; position: absolute; inset: 0; background: radial-gradient(420px circle at var(--mx, 50%) var(--my, 0%), rgba(212, 31, 208, .14), transparent 60%); opacity: 0; transition: opacity .4s; pointer-events: none; }
.vb-site .e-con.vb-card::after { content: ""; position: absolute; left: 0; bottom: 0; height: 3px; width: 100%; background: var(--vb-grad); transform: scaleX(0); transform-origin: left; transition: transform .5s var(--vb-ease); top: auto; }
.vb-site .e-con.vb-card:hover { transform: translateY(-8px); border-color: #D7B2EB; box-shadow: 0 30px 60px -28px rgba(107, 30, 143, .45); }
.vb-site .e-con.vb-card:hover::before { opacity: 1; }
.vb-site .e-con.vb-card:hover::after { transform: scaleX(1); }
.vb-site .e-con.vb-card:hover .vb-ic__box { background: var(--vb-grad); color: #fff; transform: rotate(-6deg) scale(1.06); }
.vb-card__numw { position: absolute; }
.vb-site .vb-card__numw { position: absolute !important; top: 26px; right: 28px; width: auto !important; }
.vb-card__num { font: 700 15px/1 var(--vb-head); color: #CFB4E0; letter-spacing: .06em; }
.vb-more { display: inline-flex; align-items: center; gap: 8px; font: 600 15px/1 var(--vb-head); color: var(--vb-purple); text-decoration: none; }
.vb-more .vb-svg { width: 18px; height: 18px; transition: transform .35s var(--vb-ease); }
.vb-card:hover .vb-more .vb-svg, .vb-more:hover .vb-svg { transform: translateX(6px); }
.vb-more--l { color: #F39BF7; }
.vb-site .e-con.vb-card .vb-card__p { flex: 1; }

/* dark feature tiles */
.vb-site .e-con.vb-feat { background: rgba(255, 255, 255, .035); position: relative; transition: transform .45s var(--vb-ease), background .3s, border-color .3s; }
.vb-site .e-con.vb-feat:hover { transform: translateY(-6px); background: rgba(255, 255, 255, .065); border-color: rgba(212, 31, 208, .45) !important; }
.vb-site .e-con.vb-feat:hover .vb-ic__box { background: var(--vb-grad); color: #fff; border-color: transparent; }

/* included cards */
.vb-incl__n { font: 700 14px/1 var(--vb-head); letter-spacing: .08em; color: var(--vb-mag); }
.vb-site .e-con.vb-incl { transition: transform .45s var(--vb-ease), box-shadow .45s, border-color .3s; }
.vb-site .e-con.vb-incl:hover { transform: translateY(-6px); border-color: #D7B2EB; box-shadow: 0 26px 50px -28px rgba(107, 30, 143, .4); }

/* ---------- marquee ---------- */
.vb-marqsec { background: var(--vb-grad); }
.vb-marq { overflow: hidden; padding: 22px 0; white-space: nowrap; }
.vb-marq__track { display: flex; width: max-content; animation: vbMarq 38s linear infinite; }
.vb-marq:hover .vb-marq__track { animation-play-state: paused; }
.vb-marq__grp { display: flex; align-items: center; }
.vb-marq__grp span { font: 600 clamp(20px, 2.4vw, 30px)/1 var(--vb-head); color: #fff; letter-spacing: -.01em; padding: 0 26px; }
.vb-marq__grp i { font-style: normal; color: rgba(255, 255, 255, .55); font-size: 20px; }
@keyframes vbMarq { to { transform: translateX(-50%); } }

/* ---------- header ---------- */
.vb-site-header { position: relative; z-index: 1000; }
.vb-hdr { position: fixed; top: 0; left: 0; right: 0; z-index: 1000; padding: 14px 16px 0; transition: padding .35s var(--vb-ease), transform .45s var(--vb-ease); pointer-events: none; }
body.admin-bar .vb-hdr { top: 32px; }
.vb-hdr__in { pointer-events: auto; max-width: 1240px; margin: 0 auto; display: flex; align-items: center; gap: 26px; padding: 9px 10px 9px 24px; border-radius: 999px; background: rgba(255, 255, 255, .9); -webkit-backdrop-filter: blur(18px) saturate(1.4); backdrop-filter: blur(18px) saturate(1.4); border: 1px solid rgba(233, 218, 243, .9); box-shadow: 0 10px 40px -16px rgba(58, 11, 82, .35); transition: box-shadow .35s, background .35s; }
.vb-hdr.is-stuck { padding-top: 8px; }
.vb-hdr.is-stuck .vb-hdr__in { box-shadow: 0 16px 50px -14px rgba(58, 11, 82, .5); background: rgba(255, 255, 255, .96); }
.vb-hdr__logo { display: flex; flex: none; }
.vb-hdr__logo img { height: 44px; width: auto; display: block; }
.vb-nav { display: flex; align-items: center; gap: 4px; margin-left: auto; }
.vb-nav a { position: relative; display: inline-flex; align-items: center; gap: 6px; padding: 11px 16px; border-radius: 999px; font: 500 15px/1 var(--vb-head); color: var(--vb-ink); text-decoration: none; transition: color .25s, background .25s; }
.vb-nav a:hover { color: var(--vb-purple); background: var(--vb-lav); }
.vb-nav a.is-current { color: var(--vb-purple); background: var(--vb-lav); }
.vb-chev { transition: transform .3s var(--vb-ease); }
.vb-nav__dd { position: relative; }
.vb-nav__dd:hover .vb-chev { transform: rotate(180deg); }
.vb-mega { position: absolute; top: calc(100% + 14px); left: 50%; width: 640px; padding: 14px; border-radius: 26px; background: #fff; border: 1px solid var(--vb-lav2); box-shadow: 0 40px 80px -30px rgba(58, 11, 82, .5); opacity: 0; visibility: hidden; transform: translate(-50%, 12px); transition: opacity .3s, transform .4s var(--vb-ease), visibility .3s; }
.vb-mega::before { content: ""; position: absolute; left: 0; right: 0; top: -18px; height: 18px; }
.vb-nav__dd:hover .vb-mega, .vb-nav__dd:focus-within .vb-mega { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.vb-mega__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; }
.vb-nav .vb-mega__item { display: flex; align-items: flex-start; gap: 14px; padding: 14px; border-radius: 18px; background: none; }
.vb-nav .vb-mega__item:hover { background: var(--vb-lav); }
.vb-mega__ic { flex: none; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 14px; background: linear-gradient(145deg, rgba(122, 31, 162, .12), rgba(225, 29, 216, .16)); color: var(--vb-purple); }
.vb-mega__ic .vb-svg { width: 22px; height: 22px; }
.vb-mega__item strong { display: block; font: 600 15px/1.2 var(--vb-head); color: var(--vb-ink); }
.vb-mega__item em { display: block; margin-top: 4px; font: 400 13px/1.4 'Inter', sans-serif; font-style: normal; color: #7a6a88; }
.vb-nav .vb-mega__all { margin-top: 6px; width: 100%; justify-content: center; padding: 14px; background: var(--vb-lav); color: var(--vb-purple); font-weight: 600; border-radius: 16px; }
.vb-mega__all .vb-svg { width: 16px; height: 16px; }
.vb-hdr__cta { display: inline-flex; align-items: center; padding: 14px 24px; border-radius: 999px; background: var(--vb-grad); color: #fff !important; font: 600 15px/1 var(--vb-head); text-decoration: none; box-shadow: 0 10px 24px -10px rgba(212, 31, 208, .8); transition: transform .3s var(--vb-ease), box-shadow .3s; }
.vb-hdr__cta:hover { transform: translateY(-2px); box-shadow: 0 16px 30px -10px rgba(212, 31, 208, .95); }
.vb-burger { display: none; width: 46px; height: 46px; border: 0; border-radius: 50%; background: var(--vb-lav); cursor: pointer; padding: 0; position: relative; margin-left: auto; }
.vb-burger span { position: absolute; left: 14px; width: 18px; height: 2px; border-radius: 2px; background: var(--vb-ink); transition: transform .35s var(--vb-ease), opacity .2s, top .35s var(--vb-ease); }
.vb-burger span:nth-child(1) { top: 16px; } .vb-burger span:nth-child(2) { top: 22px; } .vb-burger span:nth-child(3) { top: 28px; }
.vb-burger[aria-expanded="true"] span:nth-child(1) { top: 22px; transform: rotate(45deg); }
.vb-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.vb-burger[aria-expanded="true"] span:nth-child(3) { top: 22px; transform: rotate(-45deg); }
.vb-mobile { pointer-events: auto; max-width: 1240px; margin: 10px auto 0; border-radius: 28px; background: #fff; border: 1px solid var(--vb-lav2); box-shadow: 0 30px 60px -24px rgba(58, 11, 82, .5); max-height: calc(100vh - 110px); overflow: auto; }
.vb-mobile[hidden] { display: none; }
.vb-mobile__in { padding: 14px; display: flex; flex-direction: column; gap: 2px; animation: vbDrop .4s var(--vb-ease); }
@keyframes vbDrop { from { opacity: 0; transform: translateY(-8px); } }
.vb-mobile a, .vb-mobile summary { display: flex; align-items: center; justify-content: space-between; padding: 16px 18px; border-radius: 16px; font: 600 17px/1 var(--vb-head); color: var(--vb-ink); text-decoration: none; list-style: none; cursor: pointer; }
.vb-mobile summary::-webkit-details-marker { display: none; }
.vb-mobile a:hover, .vb-mobile summary:hover { background: var(--vb-lav); }
.vb-mobile details[open] .vb-chev { transform: rotate(180deg); }
.vb-mobile__sub { display: flex; flex-direction: column; padding: 0 0 6px 10px; }
.vb-mobile__sub a { font-weight: 500; font-size: 15.5px; color: var(--vb-body); padding: 13px 18px; }
.vb-mobile .vb-mobile__cta { margin-top: 10px; justify-content: center; background: var(--vb-grad); color: #fff; }
@media (max-width: 1024px) {
	.vb-nav, .vb-hdr__cta { display: none; }
	.vb-burger { display: block; }
	.vb-hdr__in { padding: 8px 10px 8px 20px; }
}
@media (max-width: 782px) { body.admin-bar .vb-hdr { top: 46px; } }
@media (max-width: 480px) { .vb-hdr { padding: 10px 10px 0; } .vb-hdr__logo img { height: 38px; } }

/* ---------- progress, cursor, loader, to-top ---------- */
.vb-progress { position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 1100; pointer-events: none; }
.vb-progress i { display: block; height: 100%; background: var(--vb-grad); transform-origin: left; transform: scaleX(var(--p, 0)); }
.vb-cursor { position: fixed; top: 0; left: 0; width: 460px; height: 460px; margin: -230px 0 0 -230px; border-radius: 50%; background: radial-gradient(circle, rgba(212, 31, 208, .13), transparent 62%); pointer-events: none; z-index: 2; opacity: 0; transition: opacity .5s; will-change: transform; mix-blend-mode: screen; }
.vb-cursor.is-on { opacity: 1; }
@media (hover: none) { .vb-cursor { display: none; } }
.vb-loader { position: fixed; inset: 0; z-index: 2000; display: none; place-items: center; background: var(--vb-bg); transition: opacity .6s ease, visibility .6s; }
.vb-loading .vb-loader { display: grid; }
.vb-loader.is-out { opacity: 0; visibility: hidden; }
.vb-loader__in { display: grid; justify-items: center; gap: 22px; }
.vb-loader__in img { width: 72px; height: auto; animation: vbBeat 1.2s ease-in-out infinite; filter: drop-shadow(0 0 30px rgba(212, 31, 208, .7)); }
.vb-loader__in i { display: block; width: 120px; height: 3px; border-radius: 3px; background: rgba(255, 255, 255, .12); position: relative; overflow: hidden; }
.vb-loader__in i::after { content: ""; position: absolute; inset: 0; background: var(--vb-grad); transform: translateX(-100%); animation: vbLoad 1s ease-in-out infinite; }
@keyframes vbBeat { 50% { transform: scale(1.1); } }
@keyframes vbLoad { to { transform: translateX(100%); } }
.vb-totop { position: fixed; right: 22px; bottom: 22px; z-index: 900; width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; background: var(--vb-grad); color: #fff !important; box-shadow: 0 14px 30px -10px rgba(212, 31, 208, .8); opacity: 0; transform: translateY(16px); pointer-events: none; transition: opacity .35s, transform .35s var(--vb-ease); }
.vb-totop.is-on { opacity: 1; transform: none; pointer-events: auto; }
.vb-totop:hover { transform: translateY(-4px); }

/* ---------- hero ---------- */
.vb-hero__bg, .vb-hero__bg i { position: absolute; display: block; }
.vb-hero__bg { inset: 0; overflow: hidden; }
.vb-hero__grid { inset: 0; background-image: linear-gradient(rgba(255, 255, 255, .055) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .055) 1px, transparent 1px); background-size: 64px 64px; -webkit-mask-image: radial-gradient(ellipse 70% 60% at 50% 40%, #000 20%, transparent 75%); mask-image: radial-gradient(ellipse 70% 60% at 50% 40%, #000 20%, transparent 75%); animation: vbGrid 22s linear infinite; }
@keyframes vbGrid { to { background-position: 64px 64px; } }
.vb-hero__glow { border-radius: 50%; filter: blur(90px); will-change: transform; }
.vb-hero__glow--1 { width: 620px; height: 620px; left: -160px; top: -120px; background: radial-gradient(circle, rgba(122, 31, 162, .75), transparent 65%); animation: vbFloatA 16s ease-in-out infinite; }
.vb-hero__glow--2 { width: 560px; height: 560px; right: -120px; bottom: -160px; background: radial-gradient(circle, rgba(225, 29, 216, .5), transparent 65%); animation: vbFloatB 19s ease-in-out infinite; }
.vb-hero__noise { inset: 0; background: linear-gradient(to bottom, transparent 70%, var(--vb-bg)); }
@keyframes vbFloatA { 50% { transform: translate(120px, 80px) scale(1.15); } }
@keyframes vbFloatB { 50% { transform: translate(-100px, -70px) scale(1.12); } }
.vb-hero__text { position: relative; z-index: 2; }
.vb-hero__art { position: relative; z-index: 2; }
.vb-trust { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 12px 26px; }
.vb-trust li { display: inline-flex; align-items: center; gap: 8px; color: var(--vb-soft); font: 500 14.5px/1 'Inter', sans-serif; }
.vb-trust .vb-svg { width: 18px; height: 18px; color: #F39BF7; }
.vb-hero__btns { align-items: center; }

/* hero art */
.vb-art-w { width: 100%; }
.vb-art { position: relative; width: 100%; max-width: 540px; aspect-ratio: 1 / 1.04; margin: 0 auto; }
.vb-art > * { position: absolute; }
.vb-art__orb { border-radius: 50%; filter: blur(50px); }
.vb-art__orb--a { width: 62%; height: 62%; left: 18%; top: 12%; background: radial-gradient(circle, rgba(225, 29, 216, .55), transparent 68%); animation: vbFloatA 12s ease-in-out infinite; }
.vb-art__orb--b { width: 46%; height: 46%; right: 0; bottom: 4%; background: radial-gradient(circle, rgba(122, 31, 162, .7), transparent 68%); animation: vbFloatB 14s ease-in-out infinite; }
.vb-art__ring { left: 6%; top: 6%; width: 88%; height: 88%; border-radius: 50%; border: 1px dashed rgba(255, 255, 255, .16); animation: vbSpin 60s linear infinite; }
.vb-art__ring--2 { left: 18%; top: 18%; width: 64%; height: 64%; border-style: solid; border-color: rgba(255, 255, 255, .08); animation-direction: reverse; animation-duration: 45s; }
@keyframes vbSpin { to { transform: rotate(360deg); } }
.vb-art__main { left: 12%; top: 14%; width: 74%; border-radius: 26px; background: linear-gradient(165deg, rgba(48, 20, 70, .92), rgba(26, 13, 39, .96)); border: 1px solid rgba(255, 255, 255, .14); box-shadow: 0 50px 80px -30px rgba(0, 0, 0, .8), inset 0 1px 0 rgba(255, 255, 255, .12); animation: vbBob 7s ease-in-out infinite; overflow: hidden; }
.vb-art__bar { display: flex; gap: 7px; padding: 15px 18px; border-bottom: 1px solid rgba(255, 255, 255, .08); }
.vb-art__bar i { width: 10px; height: 10px; border-radius: 50%; background: rgba(255, 255, 255, .22); }
.vb-art__bar i:first-child { background: #F11FF0; }
.vb-art__body { display: grid; justify-items: start; gap: 22px; padding: 28px 26px 30px; }
.vb-art__mark { width: 64px; height: auto; filter: drop-shadow(0 8px 24px rgba(212, 31, 208, .6)); animation: vbBeat 4s ease-in-out infinite; }
.vb-art__lines { display: grid; gap: 10px; width: 100%; }
.vb-art__lines b { display: block; height: 11px; border-radius: 8px; background: linear-gradient(90deg, rgba(255, 255, 255, .14) 25%, rgba(255, 255, 255, .3) 50%, rgba(255, 255, 255, .14) 75%); background-size: 220% 100%; animation: vbSheen 3.2s linear infinite; }
.vb-art__lines b:nth-child(1) { width: 92%; } .vb-art__lines b:nth-child(2) { width: 70%; animation-delay: .4s; } .vb-art__lines b:nth-child(3) { width: 46%; animation-delay: .8s; }
@keyframes vbSheen { to { background-position: -220% 0; } }
.vb-art__swatches { display: flex; gap: 8px; }
.vb-art__swatches i { width: 30px; height: 30px; border-radius: 10px; border: 1px solid rgba(255, 255, 255, .22); }
@keyframes vbBob { 50% { transform: translateY(-14px); } }
.vb-art__chip { display: flex; align-items: center; gap: 12px; padding: 12px 18px 12px 12px; border-radius: 18px; background: rgba(26, 13, 39, .82); border: 1px solid rgba(255, 255, 255, .16); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); box-shadow: 0 24px 40px -18px rgba(0, 0, 0, .7); color: #fff; }
.vb-art__chipic { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; background: var(--vb-grad); }
.vb-art__chipic .vb-svg { width: 20px; height: 20px; }
.vb-art__chip small { display: block; font: 500 11.5px/1.2 'Inter', sans-serif; color: var(--vb-soft); letter-spacing: .02em; }
.vb-art__chip b { display: block; margin-top: 3px; font: 600 15px/1.1 var(--vb-head); }
.vb-art__chip--seo { left: -3%; top: 8%; animation: vbBob 6s ease-in-out infinite .4s; }
.vb-art__chip--ads { right: -4%; top: 44%; animation: vbBob 7s ease-in-out infinite 1.2s; }
.vb-art__chip--web { left: 4%; bottom: 5%; animation: vbBob 6.5s ease-in-out infinite .8s; }
.vb-art__spark { right: 4%; top: 6%; width: 36%; opacity: .95; stroke-dasharray: 320; animation: vbDraw 4s ease-in-out infinite; }
.vb-art__spark path { stroke-dasharray: 320; stroke-dashoffset: 320; animation: vbDraw 4.5s ease-in-out infinite; }
@keyframes vbDraw { 0% { stroke-dashoffset: 320; } 55%, 100% { stroke-dashoffset: 0; } }
@media (max-width: 1024px) { .vb-art { max-width: 460px; margin-top: 20px; } }
@media (max-width: 520px) { .vb-art__chip { padding: 9px 13px 9px 9px; } .vb-art__chip--seo { left: 0; } .vb-art__chip--ads { right: 0; } .vb-art__chip b { font-size: 13px; } .vb-art__chipic { width: 32px; height: 32px; } }

/* ---------- inner page hero ---------- */
.vb-crumb { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; font: 500 14px/1 'Inter', sans-serif; color: var(--vb-soft); }
.vb-crumb a { color: var(--vb-soft); text-decoration: none; } .vb-crumb a:hover { color: #fff; }
.vb-crumb i { font-style: normal; opacity: .4; } .vb-crumb span { color: #fff; }
.vb-phero__text { position: relative; z-index: 2; }
.vb-spec { position: relative; padding: 34px 32px 26px; border-radius: 30px; background: linear-gradient(165deg, rgba(60, 24, 86, .8), rgba(26, 13, 39, .9)); border: 1px solid rgba(255, 255, 255, .14); box-shadow: 0 50px 90px -40px rgba(0, 0, 0, .9), inset 0 1px 0 rgba(255, 255, 255, .1); width: 100%; max-width: 460px; margin-left: auto; animation: vbBob 8s ease-in-out infinite; }
.vb-spec__ic { display: grid; place-items: center; width: 62px; height: 62px; border-radius: 20px; background: var(--vb-grad); color: #fff; box-shadow: 0 16px 34px -12px rgba(225, 29, 216, .8); }
.vb-spec__ic .vb-svg { width: 30px; height: 30px; }
.vb-spec__t { margin: 24px 0 14px; font: 600 13px/1 var(--vb-head); letter-spacing: .12em; text-transform: uppercase; color: var(--vb-soft); }
.vb-spec ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.vb-spec li { display: flex; align-items: center; gap: 12px; color: #fff; font: 500 17px/1.3 'Inter', sans-serif; }
.vb-spec li .vb-svg { width: 20px; height: 20px; flex: none; color: #F39BF7; }
.vb-spec__foot { margin-top: 26px; padding-top: 18px; border-top: 1px solid rgba(255, 255, 255, .1); color: var(--vb-soft); font: 500 13.5px/1 'Inter', sans-serif; }
@media (max-width: 1024px) { .vb-spec { margin-left: 0; } }

/* ---------- why / orbs ---------- */
.vb-orb { position: absolute; border-radius: 50%; filter: blur(110px); }
.vb-orb--l { width: 560px; height: 560px; left: -200px; top: 10%; background: radial-gradient(circle, rgba(122, 31, 162, .6), transparent 66%); animation: vbFloatA 18s ease-in-out infinite; }
.vb-orb--r { width: 600px; height: 600px; right: -220px; top: 20%; background: radial-gradient(circle, rgba(212, 31, 208, .38), transparent 66%); animation: vbFloatB 20s ease-in-out infinite; }

/* ---------- work cards ---------- */
.vb-site .e-con.vb-work { position: relative; overflow: hidden; transition: transform .5s var(--vb-ease), border-color .35s, box-shadow .5s; }
.vb-site .e-con.vb-work:hover { transform: translateY(-8px); border-color: rgba(212, 31, 208, .5) !important; box-shadow: 0 40px 80px -36px rgba(212, 31, 208, .5); }
.vb-site .e-con.vb-work__imgbox, .vb-site .e-con.vb-case__img { position: relative; overflow: hidden; aspect-ratio: 16 / 10; background: var(--vb-bg2); }
.vb-site .e-con.vb-case__img { border: 1px solid rgba(255, 255, 255, .12); box-shadow: 0 50px 90px -40px rgba(0, 0, 0, .9); aspect-ratio: 16 / 10.4; }
.vb-site .vb-work__imgbox .elementor-widget-image, .vb-site .vb-case__img .elementor-widget-image { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; }
.vb-site .vb-work__imgbox .elementor-widget-image a, .vb-site .vb-case__img .elementor-widget-image a { display: block; width: 100%; height: 100%; }
.vb-site .vb-work__imgbox img, .vb-site .vb-case__img img { width: 100%; height: 100%; object-fit: cover; object-position: top center; transition: transform 1.1s var(--vb-ease), filter .6s; }
.vb-site .e-con.vb-work:hover .vb-work__imgbox img, .vb-site .e-con.vb-case:hover .vb-case__img img { transform: scale(1.07); }
.vb-work__imgbox::after, .vb-case__img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(14, 6, 22, .55), transparent 45%); pointer-events: none; }
.vb-work__badge { position: absolute; left: 18px; bottom: 18px; z-index: 2; display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border-radius: 999px; background: rgba(14, 6, 22, .6); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); border: 1px solid rgba(255, 255, 255, .22); color: #fff; font: 600 13.5px/1 var(--vb-head); opacity: 0; transform: translateY(10px); transition: opacity .4s, transform .5s var(--vb-ease); }
.vb-work__badge .vb-svg { width: 16px; height: 16px; }
.vb-site .vb-work__imgbox > .elementor-widget-html, .vb-site .vb-case__img > .elementor-widget-html { position: absolute !important; inset: 0; z-index: 2; pointer-events: none; }
.vb-work:hover .vb-work__badge, .vb-case:hover .vb-work__badge { opacity: 1; transform: none; }
.vb-work__tags { display: flex; flex-wrap: wrap; gap: 8px; }
.vb-work__tags span { padding: 7px 13px; border-radius: 999px; font: 500 12.5px/1 'Inter', sans-serif; color: var(--vb-soft); border: 1px solid rgba(255, 255, 255, .16); }
.vb-work__tags span.is-ind { background: var(--vb-grad); border-color: transparent; color: #fff; font-weight: 600; }
.vb-site .vb-work__t a { transition: color .3s; }
.vb-site .vb-work__t.vb-work__t .elementor-heading-title > a:hover { color: #F39BF7; }
.vb-site .e-con.vb-case { position: relative; }
.vb-site .vb-work__body { flex: 1; }

/* ---------- process ---------- */
.vb-site .e-con.vb-step { position: relative; padding: 34px 28px 32px; border-radius: 26px; background: #fff; border: 1px solid var(--vb-lav2); transition: transform .45s var(--vb-ease), box-shadow .45s, border-color .3s; }
.vb-site .vb-process:not([style*="FFF"]) .e-con.vb-step { background: #fff; }
.vb-site .e-con.vb-step:hover { transform: translateY(-8px); box-shadow: 0 30px 60px -30px rgba(107, 30, 143, .45); border-color: #D7B2EB; }
.vb-step__top { display: flex; align-items: center; justify-content: space-between; width: 100%; }
.vb-step__n { font: 700 60px/1 var(--vb-head); color: transparent; -webkit-text-stroke: 1.5px #CBA3E2; letter-spacing: -.03em; }
.vb-step__ic { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: var(--vb-grad); color: #fff; box-shadow: 0 12px 24px -10px rgba(225, 29, 216, .8); }
.vb-step__ic .vb-svg { width: 24px; height: 24px; }
.vb-steps { position: relative; }

/* ---------- industries ---------- */
.vb-chips { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }
.vb-chips span { padding: 13px 22px; border-radius: 999px; background: #fff; border: 1px solid var(--vb-lav2); font: 500 15px/1 var(--vb-head); color: var(--vb-ink); transition: transform .3s var(--vb-ease), background .3s, color .3s, border-color .3s; }
.vb-chips span:hover { transform: translateY(-3px); background: var(--vb-grad); color: #fff; border-color: transparent; }

/* ---------- FAQ ---------- */
.vb-site .vb-acc .e-n-accordion-item { background: #fff; border: 1px solid var(--vb-lav2); border-radius: 20px; padding: 0 28px; margin-bottom: 14px; overflow: hidden; transition: border-color .3s, box-shadow .4s; }
.vb-site .vb-acc .e-n-accordion-item[open] { border-color: #D7B2EB; box-shadow: 0 24px 50px -30px rgba(107, 30, 143, .45); }
.vb-site .vb-acc .e-n-accordion-item-title { padding: 24px 0; }
.vb-site .vb-acc .e-n-accordion-item-title-text { font-family: var(--vb-head); }
.vb-site .vb-acc .e-n-accordion-item-title-icon { width: 34px; height: 34px; border-radius: 50%; background: var(--vb-lav); display: grid; place-items: center; flex: none; margin-left: 16px; }
.vb-site .vb-acc .e-n-accordion-item[open] .e-n-accordion-item-title-icon { background: var(--vb-grad); }
.vb-site .vb-acc .e-n-accordion-item[open] .e-n-accordion-item-title-icon i { color: #fff !important; }
.vb-site .vb-acc .e-n-accordion-item-title-icon i { font-size: 13px; }
.vb-site .vb-acc .e-n-accordion-item-title-icon svg { width: 13px; height: 13px; }
.vb-site .vb-acc .vb-acc__body { border: 0; }
.vb-site .vb-acc .e-n-accordion-item > .e-con { border: 0 !important; }

/* ---------- CTA ---------- */
.vb-site .e-con.vb-cta__box { position: relative; overflow: hidden; background: linear-gradient(125deg, #3A0B52 0%, #7A1FA2 45%, #D41FD0 100%); box-shadow: 0 60px 120px -50px rgba(212, 31, 208, .6); }
.vb-site .vb-cta__box > :not(.vb-abs) { position: relative; z-index: 1; }
.vb-cta__bg i { position: absolute; border-radius: 50%; filter: blur(40px); display: block; }
.vb-cta__bg i:nth-child(1) { width: 380px; height: 380px; left: -90px; top: -120px; background: rgba(255, 255, 255, .18); animation: vbFloatA 12s ease-in-out infinite; }
.vb-cta__bg i:nth-child(2) { width: 420px; height: 420px; right: -100px; bottom: -160px; background: rgba(241, 31, 240, .55); animation: vbFloatB 14s ease-in-out infinite; }
.vb-site .e-con.vb-cta__box::after { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(255, 255, 255, .07) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .07) 1px, transparent 1px); background-size: 52px 52px; -webkit-mask-image: radial-gradient(ellipse at center, #000 10%, transparent 70%); mask-image: radial-gradient(ellipse at center, #000 10%, transparent 70%); pointer-events: none; z-index: 0; left: 0; top: 0; width: 100%; height: 100%; }

/* ---------- services overview rows ---------- */
.vb-row__num { font: 700 15px/1 var(--vb-head); letter-spacing: .1em; color: var(--vb-mag); }
.vb-ticks { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.vb-ticks li { display: flex; align-items: center; gap: 12px; font: 500 16px/1.4 'Inter', sans-serif; color: var(--vb-ink); }
.vb-ticks .vb-svg { width: 20px; height: 20px; padding: 3px; border-radius: 50%; background: var(--vb-grad); color: #fff; flex: none; stroke-width: 3; }
.vb-site .e-con.vb-row__v { position: relative; overflow: hidden; background: linear-gradient(145deg, #2A0A3E, #7A1FA2 55%, #D41FD0); box-shadow: 0 40px 80px -40px rgba(107, 30, 143, .7); }
.vb-site .e-con.vb-row__v::before { content: ""; position: absolute; inset: 0; background-image: radial-gradient(rgba(255, 255, 255, .22) 1.5px, transparent 1.5px); background-size: 26px 26px; -webkit-mask-image: radial-gradient(circle at center, #000, transparent 75%); mask-image: radial-gradient(circle at center, #000, transparent 75%); left: 0; top: 0; width: 100%; height: 100%; }
.vb-bigic { position: relative; display: grid; justify-items: center; gap: 22px; color: #fff; text-align: center; animation: vbBob 7s ease-in-out infinite; }
.vb-bigic .vb-svg { width: 110px; height: 110px; stroke-width: 1.1; filter: drop-shadow(0 18px 30px rgba(0, 0, 0, .35)); }
.vb-bigic b { font: 600 22px/1 var(--vb-head); letter-spacing: -.01em; }

/* ---------- contact ---------- */
.vb-info { display: grid; gap: 22px; }
.vb-info__row { display: flex; gap: 16px; align-items: flex-start; }
.vb-info__row > span { flex: none; display: grid; place-items: center; width: 50px; height: 50px; border-radius: 16px; background: var(--vb-grad); color: #fff; box-shadow: 0 12px 24px -10px rgba(225, 29, 216, .7); }
.vb-info__row .vb-svg { width: 22px; height: 22px; }
.vb-info__row b { display: block; font: 600 13px/1 var(--vb-head); letter-spacing: .1em; text-transform: uppercase; color: #8C6BA3; }
.vb-info__row p { margin: 6px 0 0; font: 500 18px/1.4 'Inter', sans-serif; color: var(--vb-ink); }
.vb-nx__h { margin: 44px 0 22px; font: 700 26px/1.2 var(--vb-head); letter-spacing: -.02em; color: var(--vb-ink); }
.vb-nx { list-style: none; margin: 0; padding: 0; display: grid; gap: 22px; counter-reset: x; }
.vb-nx li { display: flex; gap: 18px; align-items: flex-start; }
.vb-nx__n { flex: none; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; border: 1.5px solid #CBA3E2; color: var(--vb-purple); font: 700 16px/1 var(--vb-head); background: #fff; }
.vb-nx strong { display: block; font: 600 17.5px/1.3 var(--vb-head); color: var(--vb-ink); }
.vb-nx p { margin: 6px 0 0; font: 400 15.5px/1.6 'Inter', sans-serif; color: var(--vb-body); }
.vb-site .e-con.vb-formcard { box-shadow: 0 50px 100px -50px rgba(107, 30, 143, .55); border: 1px solid var(--vb-lav2); position: relative; top: -70px; }
.vb-site .vb-contact .vb-contact__wrap { align-items: flex-start; }
@media (max-width: 1024px) { .vb-site .e-con.vb-formcard { top: -40px; } }

/* MetForm skin */
.vb-mf .mf-input, .vb-mf input[type=text], .vb-mf input[type=email], .vb-mf input[type=tel], .vb-mf textarea, .vb-mf .mf_select__control { border: 1.5px solid #E4D2F0 !important; border-radius: 14px !important; background: #FBF7FD !important; padding: 14px 16px !important; font: 400 16px/1.4 'Inter', sans-serif !important; color: var(--vb-ink) !important; transition: border-color .25s, box-shadow .25s, background .25s !important; box-shadow: none !important; min-height: 0; }
.vb-mf .mf_select__control { padding: 8px 10px !important; }
.vb-mf input:focus, .vb-mf textarea:focus, .vb-mf .mf_select__control--is-focused { border-color: var(--vb-mag) !important; background: #fff !important; box-shadow: 0 0 0 4px rgba(212, 31, 208, .12) !important; outline: none !important; }
.vb-mf label, .vb-mf .mf-input-label { font: 600 13.5px/1.3 var(--vb-head) !important; color: var(--vb-ink) !important; margin-bottom: 8px !important; letter-spacing: 0; }
.vb-mf .mf-input-wrapper { margin-bottom: 18px; }
.vb-mf .mf-checkbox-option, .vb-mf .mf-radio-option { display: inline-flex; margin: 0 8px 10px 0; }
.vb-mf .mf-checkbox-option label { display: inline-flex !important; align-items: center; gap: 8px; margin: 0 !important; padding: 10px 16px; border: 1.5px solid #E4D2F0; border-radius: 999px; background: #FBF7FD; cursor: pointer; font: 500 14px/1 'Inter', sans-serif !important; transition: all .25s; }
.vb-mf .mf-checkbox-option label:hover { border-color: var(--vb-mag); }
.vb-mf .mf-checkbox-option input { accent-color: var(--vb-mag); width: 16px; height: 16px; margin: 0; }
.vb-mf .mf-checkbox-option label:has(input:checked) { background: rgba(212, 31, 208, .08); border-color: var(--vb-mag); color: var(--vb-purple); }
.vb-mf .metform-btn, .vb-mf .mf-btn, .vb-mf button[type=submit] { width: 100%; padding: 18px 28px !important; border: 0 !important; border-radius: 999px !important; background: var(--vb-grad) !important; color: #fff !important; font: 600 16px/1 var(--vb-head) !important; cursor: pointer; box-shadow: 0 16px 32px -14px rgba(212, 31, 208, .8) !important; transition: transform .3s var(--vb-ease), box-shadow .3s !important; }
.vb-mf .metform-btn:hover, .vb-mf button[type=submit]:hover { transform: translateY(-3px); box-shadow: 0 22px 40px -14px rgba(212, 31, 208, .95) !important; }
.vb-mf .mf-error-message { color: #D61C6A; font-size: 13px; margin-top: 6px; }
.vb-mf .mf-response-msg, .vb-mf .mf-success-msg { padding: 16px 18px; border-radius: 14px; background: rgba(107, 30, 143, .08); color: var(--vb-purple8); font: 500 16px/1.5 'Inter', sans-serif; }
.vb-mfrow { width: 100%; }
@media (max-width: 767px) { .vb-mfrow { flex-direction: column !important; } }

/* ---------- footer ---------- */
.vb-ftr-wrap { position: relative; }
.vb-ftr { position: relative; overflow: hidden; background: var(--vb-bg); color: var(--vb-soft); font-family: 'Inter', sans-serif; }
.vb-ftr__glow { position: absolute; left: 50%; top: -240px; width: 900px; height: 420px; transform: translateX(-50%); background: radial-gradient(ellipse, rgba(122, 31, 162, .5), transparent 70%); filter: blur(40px); pointer-events: none; }
.vb-ftr__in { position: relative; max-width: 1240px; margin: 0 auto; padding: 0 24px 40px; }
.vb-ftr__top { display: flex; align-items: center; justify-content: space-between; gap: 30px; flex-wrap: wrap; padding: 70px 0 60px; border-bottom: 1px solid rgba(255, 255, 255, .1); }
.vb-ftr__cta-t { margin: 0; font: 700 clamp(30px, 4vw, 52px)/1.08 var(--vb-head); letter-spacing: -.03em; color: #fff; }
.vb-ftr__grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.2fr; gap: 50px; padding: 60px 0 50px; }
.vb-ftr .vb-ftr__logo { display: inline-flex; align-items: center; gap: 16px; padding: 0; }
.vb-ftr__logo img { height: 60px; width: auto; }
.vb-ftr__logo b { display: block; font: 700 26px/1 var(--vb-head); letter-spacing: .02em; color: #fff; }
.vb-ftr__logo small { display: block; margin-top: 8px; font: 500 11px/1 var(--vb-head); letter-spacing: .2em; text-transform: uppercase; color: var(--vb-soft); }
.vb-ftr__logo small i { display: inline-block; width: 1px; height: 10px; margin: 0 6px -1px; background: rgba(255,255,255,.4); }
.vb-ftr__brand p { margin: 20px 0 0; max-width: 340px; font-size: 15px; line-height: 1.7; }
.vb-ftr .vb-ftr__loc { display: flex; align-items: center; gap: 10px; color: #fff; font-weight: 500; }
.vb-ftr__loc .vb-svg { width: 18px; height: 18px; color: #F39BF7; flex: none; }
.vb-ftr h4 { margin: 0 0 22px; font: 600 13px/1 var(--vb-head); letter-spacing: .12em; text-transform: uppercase; color: #fff; }
.vb-ftr__grid a { display: block; padding: 7px 0; font-size: 15px; color: var(--vb-soft); text-decoration: none; transition: color .25s, transform .3s var(--vb-ease); }
.vb-ftr__grid a:hover { color: #fff; transform: translateX(5px); }
.vb-ftr .vb-ftr__note { margin: 0 0 18px; font-size: 15px; line-height: 1.65; }
.vb-ftr .vb-ftr__mail { display: inline-flex; align-items: center; gap: 10px; padding: 12px 18px; border: 1px solid rgba(255, 255, 255, .2); border-radius: 999px; color: #fff; font-weight: 500; }
.vb-ftr .vb-ftr__mail:hover { background: var(--vb-grad); border-color: transparent; transform: none; }
.vb-ftr__mail .vb-svg { width: 18px; height: 18px; }
.vb-ftr__bar { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding-top: 28px; border-top: 1px solid rgba(255, 255, 255, .1); font-size: 14px; color: #8f7fa0; }
.vb-ftr__bar i { display: inline-block; width: 5px; height: 5px; margin: 0 8px 2px; border-radius: 50%; background: var(--vb-mag); }
@media (max-width: 1024px) { .vb-ftr__grid { grid-template-columns: 1fr 1fr; } .vb-ftr__brand { grid-column: 1 / -1; } }
@media (max-width: 560px) { .vb-ftr__grid { grid-template-columns: 1fr; gap: 34px; } .vb-ftr__top { padding: 54px 0 44px; } }

/* ---------- 404 ---------- */
.vb-404 { min-height: 100vh; display: grid; place-items: center; text-align: center; padding: 160px 24px 100px; background: radial-gradient(circle at 50% 0%, #3A0B52, var(--vb-bg) 65%); color: #fff; }
.vb-404__n { margin: 0; font: 800 clamp(110px, 20vw, 220px)/1 var(--vb-head); background: linear-gradient(180deg, #F11FF0, #6B1E8F); -webkit-background-clip: text; background-clip: text; color: transparent; }
.vb-404 h1 { margin: 0 0 14px; font: 700 clamp(28px, 4vw, 44px)/1.1 var(--vb-head); color: #fff; letter-spacing: -.02em; }
.vb-404 p { color: var(--vb-soft); font-size: 18px; }
.vb-404__btns { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; margin-top: 34px; }

/* ---------- misc / responsive ---------- */
.vb-site .vb-head .elementor-heading-title { text-wrap: balance; }
.vb-site .vb-lead { text-wrap: pretty; }
.vb-site .vb-light .elementor-heading-title a { color: inherit; }
@media (max-width: 1024px) {
	.vb-site .e-con.vb-row { gap: 32px; }
}
@media (max-width: 767px) {
	.vb-site .e-con.vb-card:hover, .vb-site .e-con.vb-work:hover { transform: none; }
	.vb-site .vb-hero__btns .vb-btn, .vb-site .vb-hero__btns .vb-btn .elementor-button { width: 100%; }
	.vb-site .vb-hero__btns .vb-btn .elementor-button { justify-content: center; text-align: center; }
	.vb-site .e-con.vb-formcard { top: -28px; }
	.vb-site .e-con.vb-step { padding: 28px 24px; }
	.vb-art__chip--web { bottom: 0; }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .001s !important; animation-iteration-count: 1 !important; transition-duration: .001s !important; scroll-behavior: auto !important; }
	.vb-js .vb-reveal, .vb-js .vb-split .vb-w > span { opacity: 1; transform: none; }
}

/* ---------- link-colour specificity fixes (Elementor's link rules outrank single-class selectors) ---------- */
.vb-site .vb-ftr .vb-ftr__grid a { color: var(--vb-soft); }
.vb-site .vb-ftr .vb-ftr__grid a:hover { color: #fff; }
.vb-site .vb-ftr .vb-ftr__mail { color: #fff; }
.vb-site .vb-ftr .vb-ftr__logo { color: #fff; }
.vb-site .vb-more.vb-more--l, .vb-site a.vb-more.vb-more--l { color: #F39BF7; }
.vb-site .vb-nav a { color: var(--vb-ink); }
.vb-site .vb-nav a:hover, .vb-site .vb-nav a.is-current { color: var(--vb-purple); }
.vb-site .vb-hdr .vb-hdr__cta { color: #fff; }
.vb-site .vb-mobile a, .vb-site .vb-mobile summary { color: var(--vb-ink); }
.vb-site .vb-mobile .vb-mobile__sub a { color: var(--vb-body); }
.vb-site .vb-mobile a.vb-mobile__cta { color: #fff; }
.vb-site .vb-crumb a { color: var(--vb-soft); }
.vb-site .vb-art__chip, .vb-site .vb-spec li { color: #fff; }
.vb-site .vb-acc .e-n-accordion-item-title, .vb-site .vb-acc summary { border: 0 !important; }
.vb-site .vb-acc .e-n-accordion-item-title-header { border: 0; }
.vb-site .vb-acc details > .e-con, .vb-site .vb-acc .e-n-accordion-item > .e-con { border: 0 !important; background: none; }
.vb-site .vb-sec.vb-contact { overflow: visible; z-index: 2; }
.vb-site .vb-acc .e-n-accordion-item[open] .e-n-accordion-item-title-icon svg, .vb-site .vb-acc .e-n-accordion-item[open] .e-n-accordion-item-title-icon svg path { fill: #fff; }
@media (max-width: 767px) { .vb-site .vb-hero__lead p { font-size: 17px; } }
