AI Workflow Automation | Avanzar Solution — Generative AI :root { --red: #e1473b; --red-dark: #c73528; --purple: #9D4EDD; --blue: #00D4FF; --navy: #0b0f1c; --navy-2: #11162a; --text-dark: #2b2f3a; --text-gray: #6b7280; --border: #e6e7eb; --border-dark: rgba(255, 255, 255, .1); --bg-soft: #f4f5f7; --bg-tint: #f2f0fb; --white: #ffffff; --radius: 6px; } * { box-sizing: border-box; } html, body { margin: 0; padding: 0; } html { scroll-behavior: smooth; } body { font-family: 'Poppins', 'Segoe UI', Arial, -apple-system, BlinkMacSystemFont, sans-serif; color: var(--text-dark); line-height: 1.7; font-size: 15px; background: var(--white); -webkit-font-smoothing: antialiased; } a { text-decoration: none; color: inherit; } ul { list-style: none; margin: 0; padding: 0; } img { max-width: 100%; display: block; } .wrap { max-width: 1200px; margin: 0 auto; padding: 0 24px; position: relative; z-index: 2; } h1, h2, h3 { margin: 0; font-weight: 600; color: var(--text-dark); } .eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: 11px; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; color: #9D4EDD; background: rgba(157, 78, 221, 0.1); border: 1px solid rgba(157, 78, 221, 0.2); padding: 6px 16px; border-radius: 20px; margin-bottom: 24px; } .eyebrow .dot { width: 6px; height: 6px; border-radius: 50%; background: #00D4FF; display: inline-block; } .grad-text { background: linear-gradient(90deg, var(--purple), var(--red), var(--blue)); -webkit-background-clip: text; background-clip: text; color: transparent; } .bg-grid { position: relative; background: linear-gradient(135deg, var(--navy) 0%, var(--navy-2) 100%); color: #fff; overflow: hidden; } .bg-grid::before { content: ""; position: absolute; inset: 0; z-index: 0; background-image: linear-gradient(rgba(255, 255, 255, .04) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .04) 1px, transparent 1px); background-size: 40px 40px; } .glow-orb { position: absolute; border-radius: 50%; filter: blur(90px); opacity: .35; z-index: 0; } .btn-grad, .btn-outline { display: inline-block; padding: 13px 26px; border-radius: 30px; font-weight: 600; font-size: 14px; transition: all .2s ease; } .btn-grad { background: linear-gradient(90deg, #b05ae8, #df4d5d); color: #fff; box-shadow: 0 10px 20px rgba(176, 90, 232, 0.2); font-size: 12px; padding: 14px 28px; letter-spacing: 0.5px; text-transform: uppercase; border-radius: 6px; } .btn-grad:hover { opacity: .9; box-shadow: 0 12px 24px rgba(176, 90, 232, 0.3); transform: translateY(-2px); } .btn-outline { border: 1.5px solid rgba(255, 255, 255, .3); color: #fff; } .btn-outline:hover { border-color: #fff; background: rgba(255, 255, 255, .06); } .section-head { max-width: 100%; margin: 0 auto 40px; } .section-head.center { text-align: center; } .section-head h2 { font-size: 32px; margin-bottom: 14px; } .section-head p { color: var(--text-gray); font-size: 16px; max-width: 100%; } .bg-grid .section-head p { color: #b7bbcc; } /* ===== Hero (matched to RAG service hero height) ===== */ .hero { padding: 40px 24px; background: linear-gradient(120deg, #f5eefb 0%, #ffffff 40%, #eaf7fb 100%); text-align: left; } .hero .wrap { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 48px; align-items: center; } .hero-copy { max-width: 560px; } .hero h1 { font-size: 42px; line-height: 1.25; margin-bottom: 18px; color: #1a1a1a; letter-spacing: -0.5px; } .hero p.lede { color: var(--text-gray); font-size: 16px; max-width: 520px; margin-bottom: 26px; line-height: 1.7; } .hero-visual { width: 100%; display: flex; justify-content: center; } .hero-img-wrap { width: 100%; max-width: 360px; aspect-ratio: 1 / 1; border-radius: 20px; overflow: hidden; box-shadow: 0 24px 48px rgba(0, 0, 0, 0.08); border: 1px solid rgba(0, 0, 0, 0.02); } .hero-img-wrap img { width: 100%; height: 100%; object-fit: cover; display: block; } /* ===== Feature cards ===== */ .features { padding: 60px 24px; background: var(--bg-soft); } .grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 30px; } .fcard-large { background: var(--white); border: 1px solid var(--border); border-radius: 16px; padding: 32px; transition: all .3s ease; display: flex; flex-direction: column; } .fcard-large:hover { transform: translateY(-5px); box-shadow: 0 20px 40px rgba(20, 20, 30, .06); border-color: rgba(157, 78, 221, 0.3); } .fcard-img { background: var(--bg-soft); border-radius: 12px; height: 220px; margin-bottom: 28px; overflow: hidden; display: flex; align-items: center; justify-content: center; color: var(--navy); border: 1px solid rgba(0, 0, 0, 0.04); } .fcard-img svg { width: 100%; height: 100%; display: block; } .fcard-large:hover .fcard-img .float-a { transform: translateY(-4px); } .fcard-large:hover .fcard-img .float-b { transform: translateY(4px); } .fcard-img .float-a, .fcard-img .float-b { transition: transform .45s ease; } .fcard-img .flow { stroke-dasharray: 7 7; animation: flowDash 1.6s linear infinite; } @keyframes flowDash { to { stroke-dashoffset: -28; } } .fcard-img .pulse { transform-origin: center; animation: softPulse 2.6s ease-in-out infinite; } @keyframes softPulse { 0%, 100% { opacity: .35; } 50% { opacity: .9; } } .fcard-large h3 { font-size: 24px; margin-bottom: 14px; } .fcard-large p { color: var(--text-gray); font-size: 16px; margin: 0 0 26px; flex: 1; line-height: 1.6; } .fcard-tags { display: flex; flex-wrap: wrap; gap: 10px; } .tag { background: #fff8e1; color: #b38600; border: 1px solid rgba(179, 134, 0, 0.2); padding: 6px 14px; border-radius: 20px; font-size: 12.5px; font-weight: 500; } .tag.blue { background: #e8f4fd; color: #0260a4; border-color: rgba(2, 96, 164, 0.2); } /* ===== Dark statement band ===== */ .statement { padding: 40px 24px; text-align: center; } .statement h2 { font-size: 30px; color: #fff; margin-bottom: 22px; max-width: 820px; margin-left: auto; margin-right: auto; } .statement p { color: #b7bbcc; font-size: 16px; /*max-width: 820px; */ margin: 0 auto 16px; } .statement p:last-of-type { margin-bottom: 28px; } /* ===== Tools & Softwares (tabbed tech stack) ===== */ .expertise { padding: 60px 24px; background: var(--bg-soft); } .tech-tabs { display: flex; gap: 38px; align-items: center; border-bottom: 1px solid var(--border); margin-bottom: 34px; overflow-x: auto; scrollbar-width: none; -ms-overflow-style: none; } .tech-tabs::-webkit-scrollbar { display: none; } .tech-tab { position: relative; background: none; border: none; cursor: pointer; font-family: inherit; font-size: 15px; font-weight: 600; line-height: 1.4; color: #9aa0ac; white-space: nowrap; padding: 0 0 15px; transition: color .2s ease; } .tech-tab:hover { color: var(--text-dark); } .tech-tab.active { color: var(--red); } .tech-tab.active::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 3px; background: var(--red); border-radius: 3px 3px 0 0; } .tech-tab:focus-visible { outline: 2px solid var(--purple); outline-offset: 4px; border-radius: 4px; } .tech-panel { display: none; } .tech-panel.active { display: block; animation: techFade .35s ease; } @keyframes techFade { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } } .tech-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 20px; } .tech-card { display: flex; align-items: center; gap: 16px; background: var(--white); border: 1px solid var(--border); border-radius: 14px; padding: 22px 20px; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; } .tech-card:hover { transform: translateY(-5px); border-color: rgba(157, 78, 221, 0.35); box-shadow: 0 16px 30px rgba(20, 20, 30, .09); } .tech-logo { width: 64px; height: 64px; flex: none; border-radius: 16px; display: flex; align-items: center; justify-content: center; background: var(--bg-soft); } .tech-logo svg { width: 42px; height: 42px; display: block; } .tech-meta h3 { font-size: 16px; line-height: 1.3; margin-bottom: 3px; } .tech-meta span { font-size: 12.5px; color: var(--text-gray); line-height: 1.4; display: block; } /* ===== Automation platform wheel (radial industry wheel) ===== */ .automation-wheel-sec { padding: 80px 0 0; overflow: hidden; position: relative; } .wheel-stage { --size: 1480px; --cap: 640px; --r: 510px; --seg-w: 230px; position: relative; height: 560px; width: 100%; overflow: hidden; z-index: 2; touch-action: pan-y; } .wheel-stage:focus-visible { outline: none; } .wheel { position: absolute; left: 50%; bottom: calc(var(--cap) - var(--size)); width: var(--size); height: var(--size); border-radius: 50%; border: 1px solid rgba(157, 78, 221, .32); background: radial-gradient(circle at 50% 50%, rgba(157, 78, 221, .26) 0%, rgba(157, 78, 221, .12) 40%, rgba(11, 15, 28, 0) 70%); transform: translateX(-50%) rotate(var(--rot, 0deg)); transform-origin: 50% 50%; transition: transform .85s cubic-bezier(.22, .8, .24, 1); will-change: transform; z-index: 2; } .wheel-highlight { position: absolute; left: 50%; bottom: calc(var(--cap) - var(--size)); width: var(--size); height: var(--size); border-radius: 50%; transform: translateX(-50%); background: conic-gradient(from -18deg, rgba(157, 78, 221, .34) 0deg, rgba(0, 212, 255, .14) 36deg, transparent 36deg); -webkit-mask-image: radial-gradient(circle at 50% 50%, transparent 18%, #000 52%, transparent 84%); mask-image: radial-gradient(circle at 50% 50%, transparent 18%, #000 52%, transparent 84%); pointer-events: none; z-index: 0; } .spoke { position: absolute; left: 50%; top: 0; width: 1px; height: 50%; transform-origin: 50% 100%; transform: rotate(var(--a)); background: linear-gradient(180deg, rgba(157, 78, 221, .5) 0%, rgba(157, 78, 221, .12) 55%, rgba(157, 78, 221, 0) 90%); pointer-events: none; } .wseg { position: absolute; left: 50%; top: 50%; width: var(--seg-w); text-align: center; transform: translate(-50%, -50%) rotate(var(--a)) translateY(calc(-1 * var(--r))) scale(var(--sc, .82)); transform-origin: 50% 50%; opacity: var(--op, .4); transition: transform .85s cubic-bezier(.22, .8, .24, 1), opacity .55s ease; cursor: pointer; z-index: 3; } .wseg-ico { width: 62px; height: 62px; margin: 0 auto 16px; border-radius: 16px; background: linear-gradient(155deg, rgba(157, 78, 221, .28), rgba(0, 212, 255, .12)); border: 1px solid rgba(157, 78, 221, .42); box-shadow: 0 10px 28px rgba(157, 78, 221, .25), inset 0 0 14px rgba(255, 255, 255, .05); display: flex; align-items: center; justify-content: center; color: #d9b6ff; transition: all .35s ease; } .wseg.is-active .wseg-ico { background: linear-gradient(155deg, rgba(157, 78, 221, .55), rgba(0, 212, 255, .28)); border-color: rgba(0, 212, 255, .55); box-shadow: 0 14px 36px rgba(157, 78, 221, .45), inset 0 0 16px rgba(255, 255, 255, .08); color: #fff; } .wseg h3 { font-size: 17px; color: #fff; margin-bottom: 10px; line-height: 1.35; } .wseg h3::after { content: ""; display: block; width: 30px; height: 2px; margin: 10px auto 0; border-radius: 2px; background: linear-gradient(90deg, var(--purple), var(--red)); opacity: .8; } .wseg p { font-size: 13px; line-height: 1.6; color: #a0a5b5; margin: 0; } .wseg.is-active p { color: #c7ccdd; } .wheel-core { position: absolute; left: 50%; bottom: 88px; transform: translateX(-50%); width: 128px; height: 128px; border-radius: 50%; background: radial-gradient(circle at 50% 32%, #1d2447 0%, var(--navy) 100%); border: 1px solid rgba(157, 78, 221, .4); box-shadow: 0 0 60px rgba(157, 78, 221, .35); display: flex; align-items: center; justify-content: center; text-align: center; z-index: 5; } .wheel-core::before { content: ""; position: absolute; inset: -14px; border-radius: 50%; border: 1px solid rgba(0, 212, 255, .2); animation: coreRing 3.2s ease-in-out infinite; } @keyframes coreRing { 0%, 100% { transform: scale(1); opacity: .85; } 50% { transform: scale(1.09); opacity: .2; } } .wheel-core h3 { color: #fff; font-size: 15px; letter-spacing: 1px; margin-bottom: 2px; } .wheel-core p { color: var(--blue); font-size: 9px; text-transform: uppercase; letter-spacing: 2px; margin: 0; line-height: 1.4; } .wheel-controls { position: absolute; bottom: 22px; left: 0; right: 0; display: flex; justify-content: space-between; align-items: center; padding: 0 40px; z-index: 6; pointer-events: none; } .wheel-btn { pointer-events: auto; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.12); color: #fff; padding: 11px 22px; border-radius: 30px; cursor: pointer; display: flex; align-items: center; gap: 8px; transition: all 0.3s ease; font-family: inherit; font-size: 14px; } .wheel-btn:hover { background: rgba(157, 78, 221, 0.2); border-color: rgba(157, 78, 221, 0.5); color: var(--blue); } .wheel-dots { pointer-events: auto; display: flex; gap: 9px; align-items: center; } .wheel-dot { width: 8px; height: 8px; border-radius: 50%; border: none; padding: 0; cursor: pointer; background: rgba(255, 255, 255, 0.22); transition: all .3s ease; } .wheel-dot.active { width: 24px; border-radius: 5px; background: linear-gradient(90deg, var(--purple), var(--blue)); } /* ===== FAQ ===== */ .faq { padding: 60px 24px 80px; background: var(--bg-soft); } .faq .wrap { /*max-width: 900px;*/ } .faq-item { background: var(--white); border: 1px solid var(--border); border-radius: 12px; margin-bottom: 12px; overflow: hidden; transition: border-color .25s ease, box-shadow .25s ease; } .faq-item.open { border-color: rgba(157, 78, 221, 0.35); box-shadow: 0 16px 30px rgba(20, 20, 30, .07); } .faq-q { width: 100%; display: flex; align-items: center; gap: 16px; text-align: left; background: none; border: none; cursor: pointer; font-family: inherit; padding: 20px 22px; font-size: 15.5px; font-weight: 500; color: var(--text-dark); line-height: 1.5; } .faq-q:focus-visible { outline: 2px solid var(--purple); outline-offset: -4px; } .faq-num { font-family: 'JetBrains Mono', monospace; font-weight: 600; color: var(--red); font-size: 14px; flex: none; } .faq-item.open .faq-q { color: var(--red); } .faq-arrow { margin-left: auto; flex: none; width: 30px; height: 30px; border-radius: 50%; background: rgba(225, 71, 59, .1); color: var(--red); display: flex; align-items: center; justify-content: center; transition: transform .28s ease, background .28s ease, color .28s ease; } .faq-arrow svg { width: 15px; height: 15px; } .faq-item.open .faq-arrow { transform: rotate(180deg); background: linear-gradient(90deg, var(--purple), var(--red)); color: #fff; } .faq-a { max-height: 0; overflow: hidden; transition: max-height .32s ease; } .faq-a p { color: var(--text-gray); font-size: 14.5px; margin: 0; padding: 0 24px 22px 62px; } @media (prefers-reduced-motion: reduce) { * { animation: none !important; transition: none !important; } html { scroll-behavior: auto; } } @media(max-width:1000px) { .tech-grid { grid-template-columns: repeat(3, 1fr); } } @media(max-width:900px) { .hero .wrap { grid-template-columns: 1fr; gap: 36px; } .hero-visual { order: -1; } .grid-2 { grid-template-columns: 1fr; } .tech-tabs { gap: 26px; } } @media(max-width:900px) { .wheel-stage { --size: 1100px; --cap: 520px; --r: 400px; --seg-w: 200px; height: 480px; } .wheel-core { width: 108px; height: 108px; bottom: 78px; } } @media(max-width:768px) { .wheel-controls { padding: 0 20px; } .wheel-btn { padding: 10px 18px; font-size: 13px; } } @media(max-width:700px) { .tech-grid { grid-template-columns: repeat(2, 1fr); } } @media(max-width:600px) { .wrap { padding: 0 18px; } .hero, .features, .statement, .expertise, .faq { padding: 32px 18px; } .hero h1 { font-size: 28px; } .section-head h2, .statement h2 { font-size: 22px; } .fcard-large { padding: 24px; } .fcard-large h3 { font-size: 20px; } .tech-grid { grid-template-columns: 1fr; } .tech-tab { font-size: 14px; } .faq-q { font-size: 14.5px; padding: 18px; gap: 12px; } .faq-a p { padding: 0 18px 20px 44px; } } AGENTIC AI SERVICES Agents that don't wait for instructions — they act. We design and deploy autonomous AI agents that plan, decide, and execute across your workflows — freeing your team to focus on the work that actually moves revenue. TALK TO OUR AI EXPERTS → What We Offer in AI Workflow Automation Transform manual, fragmented processes into intelligent workflows that operate seamlessly across your business systems. Process Automation Automate repetitive business tasks and approvals across departments, minimizing manual intervention and speeding up operations. Workflow automation Approval automation Task routing & escalation Document & Communication Automation Process documents, emails, forms, and communications automatically using AI-driven data extraction and validation techniques. Document processing Email automation Data extraction CRM ERP Billing Support Cross-System Automation Connect and orchestrate workflows across multiple business applications, creating a seamless data flow from CRM to ERP and beyond. ERP automation CRM automation API Integrations AI-Powered Decision Automation Enable workflows to analyze information and take intelligent actions based on rule-based automation and AI-driven decision making. Rule-based automation AI-driven decision making Exception handling Orchestrate Your Business at the Speed of AI Manual data entry, delayed approvals, and fragmented systems cost your team thousands of hours. AI workflow automation eliminates these bottlenecks. By integrating intelligent agents directly into your daily operations, your business moves faster, acts smarter, and operates with unparalleled efficiency. Discuss Your Project → Our Stack Tools & Softwares We Use Modern tools and platforms enable scalable, secure, and intelligent workflow automation. Workflow Orchestration Automation Platforms AI & ML Frameworks Cloud & Integration Database Management Containerization LangChainAgent Framework LangGraphStateful Agent Graphs TemporalDurable Workflows Apache AirflowPipeline Scheduling CeleryDistributed Task Queue n8nSelf-Hosted Automation ZapierApp Connectors MakeVisual Scenarios Power AutomateMicrosoft 365 Flows UiPathRPA Bots OpenAILLM & Embeddings API ClaudeLong-Context Reasoning Hugging FaceModel Hub PyTorchModel Training LlamaIndexData Framework AWS LambdaServerless Functions Azure FunctionsEvent-Driven Compute Google Cloud RunContainer Hosting TwilioSMS & Voice APIs Slack APITeam Notifications PostgreSQLPrimary Data Store MongoDBDocument Store RedisCache & Queues ElasticsearchSearch & Logs PineconeVector Memory DockerContainerization KubernetesOrchestration AWS ECSManaged Containers GitHub ActionsCI/CD Pipelines TerraformInfrastructure as Code Built For Every Workflow AI Automation Platform No matter the process, our AI adapts to your workflows, understands your business needs, and provides intelligent, automated solutions. Data Processing Automate data entry, extraction, and validation with intelligent algorithms. Document Analysis Extract key insights and summaries from complex unstructured documents instantly. Customer Support Deploy AI agents that understand context and resolve customer inquiries 24/7. Workflow Automation Connect your tools and automate repetitive tasks end to end. Predictive Analytics Forecast trends from historical data and act before problems surface. Sales Automation Qualify leads, schedule meetings, and personalize outreach automatically. Intelligent Routing Categorize every inquiry and send it to the right team on its own. Finance & Invoicing Match invoices, run approvals, and reconcile payments without manual checks. HR & Onboarding Screen candidates, collect documents, and set up new joiners on day one. Compliance & Reporting Generate audit-ready reports and flag exceptions the moment they appear. AVANZAR AI Core Prev Next FAQ Questions teams ask us before automating Don't see your question here? Send it over and we'll answer it directly. 01 What is AI Workflow Automation? AI Workflow Automation uses artificial intelligence to run complex business processes across multiple systems without step-by-step human input — reading the incoming work, deciding what happens next, and executing it end to end. 02 How does AI automation differ from traditional RPA? Traditional RPA follows fixed, rule-based scripts and breaks the moment a screen or format changes. AI automation understands context, handles unstructured input like emails and PDFs, and makes judgement calls within the boundaries you define. 03 What are the key benefits of AI Workflow Automation? Large time savings on repetitive work, fewer manual errors, faster turnaround on approvals and requests, operations that scale without extra headcount, and teams freed up for higher-value strategic work. 04 What are common use cases for workflow automation? Invoice processing, customer onboarding, email triage and routing, document data extraction, HR onboarding, order and claims handling, and keeping data in sync across several systems. 05 Will AI workflow automation replace my employees? The goal is to remove the tedious parts of the job, not the job. Agents handle the repetitive execution while your team keeps ownership of exceptions, judgement calls, and the customer relationship. 06 What systems can be integrated into an AI workflow? CRMs, ERPs, email and calendar, ticketing tools, databases, and any REST API. Legacy software without an API can still be automated through RPA-style UI interaction where needed. 07 How do we keep control over what the agents do? Every workflow ships with defined action boundaries, human approval gates on high-impact steps, and a full audit log of what ran, why, and with which data — so nothing happens that you can't trace back. 08 How long does an automation project take? A single high-volume workflow usually goes live in three to five weeks. A broader rollout across departments, with integrations and monitoring in place, typically runs eight to twelve weeks. /* ===== Tools & Softwares tabs ===== */ (function () { var tabs = document.querySelectorAll('.tech-tab'); tabs.forEach(function (tab) { tab.addEventListener('click', function () { tabs.forEach(function (t) { t.classList.remove('active'); t.setAttribute('aria-selected', 'false'); }); document.querySelectorAll('.tech-panel').forEach(function (p) { p.classList.remove('active'); p.hidden = true; }); tab.classList.add('active'); tab.setAttribute('aria-selected', 'true'); var panel = document.getElementById(tab.dataset.panel); if (panel) { panel.hidden = false; panel.classList.add('active'); } }); }); })(); /* ===== AI Automation Platform wheel (rotating radial wheel) ===== */ document.addEventListener('DOMContentLoaded', function () { var section = document.querySelector('.automation-wheel-sec'); if (!section) return; var stage = section.querySelector('.wheel-stage'); var wheel = section.querySelector('.wheel'); var segs = Array.prototype.slice.call(section.querySelectorAll('.wseg')); var spokes = Array.prototype.slice.call(section.querySelectorAll('.spoke')); var prevBtn = section.querySelector('.prev-btn'); var nextBtn = section.querySelector('.next-btn'); var dotsWrap = section.querySelector('.wheel-dots'); var total = segs.length; if (!total) return; var step = 360 / total; var index = 0; var rotation = 0; var timer = null; var AUTOPLAY_MS = 3800; var reduceMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches; // Place every segment and divider around the wheel segs.forEach(function (seg, i) { seg.style.setProperty('--a', (i * step) + 'deg'); seg.addEventListener('click', function () { goTo(i); restart(); }); }); spokes.forEach(function (sp, i) { sp.style.setProperty('--a', (i * step + step / 2) + 'deg'); }); // Dots var dots = segs.map(function (seg, i) { var dot = document.createElement('button'); dot.className = 'wheel-dot' + (i === 0 ? ' active' : ''); dot.type = 'button'; dot.setAttribute('aria-label', 'Show capability ' + (i + 1)); dot.addEventListener('click', function () { goTo(i); restart(); }); dotsWrap.appendChild(dot); return dot; }); function render() { wheel.style.setProperty('--rot', rotation + 'deg'); segs.forEach(function (seg, i) { var offset = ((i - index) % total + total) % total; if (offset > total / 2) offset -= total; var abs = Math.abs(offset); var op, sc; if (abs === 0) { op = 1; sc = 1; } else if (abs === 1) { op = 0.8; sc = 0.88; } else if (abs === 2) { op = 0.42; sc = 0.8; } else { op = 0; sc = 0.74; } seg.style.setProperty('--op', op); seg.style.setProperty('--sc', sc); seg.style.pointerEvents = op === 0 ? 'none' : 'auto'; seg.setAttribute('aria-hidden', op === 0 ? 'true' : 'false'); seg.classList.toggle('is-active', abs === 0); }); dots.forEach(function (d, i) { d.classList.toggle('active', i === index); }); } function goTo(i) { var target = ((i % total) + total) % total; var delta = ((target - index) % total + total) % total; if (delta > total / 2) delta -= total; rotation -= delta * step; // wheel turns, content turns with it index = target; render(); } function next() { goTo(index + 1); } function prev() { goTo(index - 1); } function start() { if (reduceMotion || timer) return; timer = setInterval(next, AUTOPLAY_MS); } function stop() { clearInterval(timer); timer = null; } function restart() { stop(); start(); } if (nextBtn) nextBtn.addEventListener('click', function () { next(); restart(); }); if (prevBtn) prevBtn.addEventListener('click', function () { prev(); restart(); }); // Keyboard stage.addEventListener('keydown', function (e) { if (e.key === 'ArrowRight') { e.preventDefault(); next(); restart(); } if (e.key === 'ArrowLeft') { e.preventDefault(); prev(); restart(); } }); // Swipe / drag var startX = null; stage.addEventListener('pointerdown', function (e) { startX = e.clientX; }); stage.addEventListener('pointerup', function (e) { if (startX === null) return; var dx = e.clientX - startX; startX = null; if (Math.abs(dx) < 45) return; dx < 0 ? next() : prev(); restart(); }); stage.addEventListener('pointercancel', function () { startX = null; }); // Keep spinning on hover; pause only over the controls so clicks aren't fought [prevBtn, nextBtn, dotsWrap].forEach(function (el) { if (!el) return; el.addEventListener('mouseenter', stop); el.addEventListener('mouseleave', start); }); document.addEventListener('visibilitychange', function () { document.hidden ? stop() : start(); }); if ('IntersectionObserver' in window) { new IntersectionObserver(function (entries) { entries[0].isIntersecting ? start() : stop(); }, { threshold: 0.2 }).observe(section); } else { start(); } render(); start(); }); /* ===== FAQ accordion ===== */ (function () { var items = document.querySelectorAll('.faq-item'); function close(item) { item.classList.remove('open'); item.querySelector('.faq-q').setAttribute('aria-expanded', 'false'); item.querySelector('.faq-a').style.maxHeight = null; } function open(item) { var body = item.querySelector('.faq-a'); item.classList.add('open'); item.querySelector('.faq-q').setAttribute('aria-expanded', 'true'); body.style.maxHeight = body.scrollHeight + 'px'; } items.forEach(function (item) { if (item.classList.contains('open')) { open(item); } item.querySelector('.faq-q').addEventListener('click', function () { var isOpen = item.classList.contains('open'); items.forEach(close); if (!isOpen) { open(item); } }); }); window.addEventListener('resize', function () { items.forEach(function (item) { if (item.classList.contains('open')) { var body = item.querySelector('.faq-a'); body.style.maxHeight = body.scrollHeight + 'px'; } }); }); })();

Customer Support

🔴 Support Offline - Leave a message