{"id":65645,"date":"2026-10-27T10:47:31","date_gmt":"2026-10-27T10:47:31","guid":{"rendered":"https:\/\/capytech.com\/?page_id=65645"},"modified":"2026-10-27T15:37:15","modified_gmt":"2026-10-27T15:37:15","slug":"build-time-estimator","status":"publish","type":"page","link":"https:\/\/capytech.com\/en\/build-time-estimator\/","title":{"rendered":"E-Learning Build Time Estimator"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"65645\" class=\"elementor elementor-65645\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-e206818 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"e206818\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-276f1e4\" data-id=\"276f1e4\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-1056aef elementor-widget elementor-widget-html\" data-id=\"1056aef\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <!-- ADDED: Social Preview Images for consistency -->\n    <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n    <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap\" rel=\"stylesheet\">\n<\/head>\n<body>\n\n<style>\n  \/* ==============================================\n     0. WORDPRESS & ROOT RESETS\n     ============================================== *\/\n  html, body { margin: 0 !important; padding: 0 !important; font-size: 16px !important; scroll-behavior: smooth; overflow-x: clip; background-color: var(--slate-50); }\n\n  .elementor-widget-html, .elementor-html-container, .elementor-widget-wrap, .elementor-section, .elementor-column, .elementor-container, .elementor-inner-section {\n    padding: 0 !important; margin: 0 !important; max-width: 100% !important; width: 100% !important;\n  }\n\n  \/* ==============================================\n     1. GLOBAL VARIABLES & WRAPPER\n     ============================================== *\/\n  .capy-custom-wrapper {\n    --font-sans: 'Plus Jakarta Sans', sans-serif;\n    --brand-50: #eff6ff; --brand-100: #dbeafe; --brand-500: #3b82f6; --brand-600: #2563eb; --brand-900: #0f172a; \n    --slate-50: #f8fafc; --slate-100: #f1f5f9; --slate-200: #e2e8f0; --slate-300: #cbd5e1; --slate-400: #94a3b8; \n    --slate-500: #64748b; --slate-600: #475569; --brand-300: #93c5fd; --slate-700: #334155; --slate-900: #0f172a; --white: #ffffff;\n\n    font-family: var(--font-sans) !important;\n    margin-left: calc(-50vw + 50%) !important; margin-right: calc(-50vw + 50%) !important;\n    width: 100vw !important; max-width: 100vw !important;\n    position: relative; background-color: var(--slate-50); overflow-x: clip !important; \n  }\n\n  .capy-custom-wrapper * { font-family: var(--font-sans) !important; box-sizing: border-box; margin: 0; padding: 0; }\n  .capy-container { max-width: 1280px !important; margin: 0 auto; width: 100%; padding: 0 1.5rem; }\n\n  \/* ==============================================\n     2. GLOBAL BUTTONS & ANIMATIONS\n     ============================================== *\/\n  .capy-btn {\n    display: inline-flex; align-items: center; justify-content: center;\n    padding: 1.125rem 2.5rem; font-size: 1.05rem; font-weight: 700;\n    border-radius: 999px; \n    text-decoration: none; transition: all 0.3s cubic-bezier(0.165, 0.84, 0.44, 1); cursor: pointer;\n  }\n  .capy-btn-primary { background-color: var(--brand-900); color: var(--white) !important; box-shadow: 0 10px 25px -5px rgba(15, 23, 42, 0.3); }\n  .capy-btn-primary:hover { background-color: var(--brand-600); transform: translateY(-3px); box-shadow: 0 20px 25px -5px rgba(37, 99, 235, 0.4); }\n  .capy-btn-secondary { background-color: var(--white); color: var(--brand-900) !important; border: 1px solid var(--slate-200); }\n  .capy-btn-secondary:hover { background-color: var(--slate-50); border-color: var(--slate-300); transform: translateY(-3px); box-shadow: 0 10px 15px -3px rgba(15, 23, 42, 0.05); }\n\n  .capy-reveal, .capy-reveal-up { opacity: 0; transition: opacity 0.8s ease, transform 1s ease; will-change: opacity, transform; }\n  .capy-reveal-up { transform: translateY(40px); }\n  .capy-active.capy-reveal, .capy-active.capy-reveal-up { opacity: 1; transform: translate(0, 0); }\n  .capy-delay-1 { transition-delay: 0.1s; } .capy-delay-2 { transition-delay: 0.2s; } .capy-delay-3 { transition-delay: 0.3s; }\n\n  .capy-hero-load-up {\n    opacity: 0;\n    transform: translateY(40px);\n    animation: capy-fade-in-up 0.8s cubic-bezier(0.165, 0.84, 0.44, 1) forwards;\n  }\n  @keyframes capy-fade-in-up { to { opacity: 1; transform: translateY(0); } }\n\n  .capy-hero-delay-1 { animation-delay: 0.1s; }\n  .capy-hero-delay-2 { animation-delay: 0.2s; }\n  .capy-hero-delay-3 { animation-delay: 0.3s; }\n\n  \/* ==============================================\n     PART 1: THE BLENDED HERO SECTION\n     ============================================== *\/\n  .capy-art-hero {\n    position: relative;\n    padding: 8rem 0 4rem 0;\n    background-color: var(--white);\n    overflow: hidden;\n    text-align: center;\n  }\n\n  .capy-btn:active, .capy-btn-solid:active, .capy-btn-glass:active {\n    transform: scale(0.96) !important;\n    transition: transform 0.1s ease !important;\n  }\n\n  .capy-art-glow {\n    position: absolute; top: -20%; right: -10%;\n    width: 800px; height: 800px;\n    background: radial-gradient(circle, rgba(167, 139, 250, 0.25) 0%, rgba(99, 102, 241, 0.15) 40%, transparent 70%);\n    filter: blur(60px); z-index: 0; pointer-events: none;\n    animation: capy-aurora 10s ease-in-out infinite alternate;\n  }\n\n  @keyframes capy-aurora {\n    0% { transform: scale(1) translate(0, 0); }\n    50% { transform: scale(1.1) translate(-50px, 30px); }\n    100% { transform: scale(0.9) translate(30px, -30px); }\n  }\n\n  .capy-ui-sticker {\n    position: absolute; background: rgba(255, 255, 255, 0.85);\n    backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);\n    border: 1px solid rgba(255, 255, 255, 0.8);\n    box-shadow: 0 15px 35px -5px rgba(15, 23, 42, 0.15), inset 0 1px 0 rgba(255,255,255,1);\n    border-radius: 999px; padding: 0.6rem 1.25rem;\n    display: flex; align-items: center; gap: 0.5rem;\n    font-size: 0.85rem; font-weight: 800; color: var(--brand-900);\n    z-index: 20; animation: capy-float 6s ease-in-out infinite alternate;\n  }\n  .sticker-1 { top: 10%; left: -5%; animation-delay: 0s; }\n\n  .capy-art-hero-content {\n    position: relative; z-index: 10; max-width: 56rem; margin: 0 auto;\n    display: flex; flex-direction: column; align-items: center;\n  }\n\n  .capy-art-lockup {\n    display: inline-flex; align-items: center; gap: 1.25rem; \n    padding: 0.6rem 1.75rem; background: rgba(255, 255, 255, 0.85); \n    backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);\n    border: 1px solid rgba(226, 232, 240, 0.8); border-radius: 999px; \n    box-shadow: 0 10px 25px -5px rgba(99, 102, 241, 0.1), inset 0 1px 0 rgba(255, 255, 255, 1);\n    margin-bottom: 2.5rem; transition: all 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);\n  }\n\n  .capy-art-lockup:hover { transform: translateY(-3px); box-shadow: 0 15px 35px -5px rgba(99, 102, 241, 0.15), inset 0 1px 0 rgba(255, 255, 255, 1); }\n  .capy-lockup-capytech { width: 150px; }\n  .capy-lockup-articulate { width: 150px; }\n\n  .capy-art-divider { display: flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; }\n  .capy-art-divider svg { width: 1.1rem; height: 1.1rem; color: var(--slate-600); stroke-width: 3; }\n\n  .capy-art-headline { font-size: 3.5rem; font-weight: 800; line-height: 1.1; color: var(--brand-900); letter-spacing: -0.03em; margin-bottom: 1.5rem; }\n  @media (min-width: 1024px) { .capy-art-headline { font-size: 4.5rem; } }\n  .capy-art-gradient { color: var(--brand-600); }\n\n  .capy-art-subhead { font-size: 1.15rem; color: var(--slate-500); line-height: 1.6; max-width: 48rem; margin: 0 auto 2.5rem auto; }\n  @media (min-width: 1024px) { .capy-art-subhead { font-size: 1.25rem; } }\n\n  .capy-art-actions { display: flex; flex-direction: column; gap: 1rem; width: 100%; justify-content: center; margin-bottom: 5rem; }\n  @media (min-width: 640px) { .capy-art-actions { flex-direction: row; width: auto; } }\n\n  .capy-art-ui-mockup {\n    position: relative; z-index: 10; width: 100%; max-width: 1100px; margin: 0 auto;\n    background-color: var(--slate-50); border: 1px solid var(--slate-200);\n    border-radius: 2rem; box-shadow: 0 30px 60px -15px rgba(15, 23, 42, 0.15);\n    aspect-ratio: 16\/9; overflow: hidden; transform: translateY(0); transition: transform 0.5s ease;\n  }\n  .capy-art-ui-mockup:hover { transform: translateY(-10px); box-shadow: 0 40px 70px -15px rgba(15, 23, 42, 0.2); }\n  .capy-art-ui-mockup img { width: 100%; height: 100%; object-fit: cover; }\n\n  \/* --- PART 1.5: BULLETPROOF INFINITE MARQUEE --- *\/\n  .capy-trust-strip { padding: 4rem 0 3rem 0; background-color: var(--white); border-bottom: 1px solid var(--slate-100); text-align: center; position: relative; overflow: hidden; width: 100vw; margin-left: calc(-50vw + 50%); }\n  .capy-trust-strip p { font-size: 0.85rem; font-weight: 800; color: var(--slate-400); text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 2.5rem; }\n  .capy-marquee-window { width: 100%; overflow: hidden; position: relative; display: flex; }\n  .capy-marquee-window::before, .capy-marquee-window::after { content: ''; position: absolute; top: 0; width: 150px; height: 100%; z-index: 10; pointer-events: none; }\n  .capy-marquee-window::before { left: 0; background: linear-gradient(to right, var(--white) 0%, transparent 100%); }\n  .capy-marquee-window::after { right: 0; background: linear-gradient(to left, var(--white) 0%, transparent 100%); }\n  .capy-marquee-track { display: flex; width: fit-content; animation: capy-scroll-infinite 40s linear infinite; }\n  .capy-marquee-track:hover { animation-play-state: paused; }\n  .capy-marquee-group { display: flex; align-items: center; padding-right: 4rem; gap: 4rem; flex-shrink: 0; min-width: 100vw; justify-content: space-around; }\n  .capy-marquee-group img { height: 2.5rem; width: auto !important; max-width: none !important; object-fit: contain; opacity: 0.5; filter: grayscale(100%); transition: all 0.3s ease; cursor: pointer; flex-shrink: 0; }\n  .capy-marquee-group img:hover { opacity: 1; filter: grayscale(0%); transform: scale(1.05); }\n  .capy-marquee-group img.capy-logo-large { height: 6rem; }\n  @media (max-width: 767px) { .capy-marquee-group { gap: 2.5rem; padding-right: 2.5rem; } .capy-marquee-group img { height: 1.75rem; } .capy-marquee-group img.capy-logo-large { height: 3rem; } }\n  @keyframes capy-scroll-infinite { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }\n\n  \/* ==============================================\n     PART 2: THE PARTNER ADVANTAGE\n     ============================================== *\/\n  .capy-advantage-section { padding: 8rem 0; background-color: var(--white); border-top: 1px solid var(--slate-100); position: relative; overflow: hidden; }\n  .capy-adv-header { text-align: center; margin-bottom: 5rem; padding: 0 1.5rem; }\n  .capy-adv-header h2 { font-size: 2.5rem; font-weight: 800; color: var(--brand-900); margin-bottom: 1.5rem; letter-spacing: -0.02em; line-height: 1.1; }\n  @media (min-width: 768px) { .capy-adv-header h2 { font-size: 3.5rem; } }\n  .capy-adv-header p { font-size: 1.15rem; color: var(--slate-500); max-width: 42rem; margin: 0 auto; line-height: 1.6; }\n\n  .capy-adv-grid { display: grid; grid-template-columns: 1fr; gap: 2rem; }\n  @media (min-width: 1024px) {\n    .capy-adv-grid { grid-template-columns: repeat(2, 1fr); gap: 2.5rem; }\n    .capy-adv-card.capy-adv-featured { grid-column: span 2; flex-direction: row-reverse; }\n    .capy-adv-card.capy-adv-featured .capy-adv-visual { width: 55%; height: auto; min-height: 400px; }\n    .capy-adv-card.capy-adv-featured .capy-adv-content { width: 45%; padding: 4rem; justify-content: center; }\n  }\n\n  .capy-adv-card { border-radius: 1.5rem; transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1); position: relative; z-index: 1; display: flex; flex-direction: column; border: none; overflow: hidden; box-shadow: inset 0 1px 1px rgba(255, 255, 255, 0.9), 0 10px 25px -5px rgba(15, 23, 42, 0.02); }\n  .capy-adv-card:hover { transform: translateY(-8px); box-shadow: inset 0 1px 1px rgba(255, 255, 255, 1), 0 25px 50px -12px rgba(15, 23, 42, 0.08); z-index: 10; }\n  .capy-card-pastel-blue { background-color: #f0f6ff; } .capy-card-pastel-purple { background-color: #f5f3ff; } .capy-card-pastel-green { background-color: #ecfdf5; }\n\n  .capy-adv-visual { width: 100%; height: 260px; position: relative; overflow: hidden; background-color: rgba(255, 255, 255, 0.4); display: flex; align-items: center; justify-content: center; }\n  .capy-adv-visual img { width: 100%; height: 100%; object-fit: cover; object-position: center top; transition: transform 0.5s cubic-bezier(0.165, 0.84, 0.44, 1); }\n  .capy-adv-card:hover .capy-adv-visual img { transform: scale(1.05); }\n\n  .capy-adv-content { padding: 2.5rem; display: flex; flex-direction: column; flex-grow: 1; }\n  .capy-adv-icon { width: 3.5rem; height: 3.5rem; border-radius: 1rem; display: flex; align-items: center; justify-content: center; margin-bottom: 1.5rem; transition: transform 0.3s ease; }\n  .capy-adv-card:hover .capy-adv-icon { transform: scale(1.1) rotate(-5deg); }\n  .capy-adv-icon svg { width: 1.75rem; height: 1.75rem; }\n\n  .capy-card-pastel-blue .capy-adv-icon { background-color: #dbeafe; color: #3b82f6; }\n  .capy-card-pastel-purple .capy-adv-icon { background-color: #ede9fe; color: #8b5cf6; }\n  .capy-card-pastel-green .capy-adv-icon { background-color: #d1fae5; color: #10b981; }\n\n  .capy-adv-title { font-size: 1.35rem; font-weight: 800; color: var(--brand-900); margin-bottom: 1rem; letter-spacing: -0.01em; line-height: 1.3; }\n  .capy-adv-text { font-size: 1rem; color: var(--slate-600); line-height: 1.6; margin: 0; }\n\n  \/* ==============================================\n     PART 3: THE ARTICULATE 360 SUITE \n     ============================================== *\/\n  .capy-suite-section { padding: 8rem 0; background-color: var(--white); position: relative; overflow: hidden; }\n  .capy-suite-header { text-align: center; margin-bottom: 5rem; padding: 0 1.5rem; }\n  .capy-suite-header h2 { font-size: 2.5rem; font-weight: 800; color: var(--brand-900); margin-bottom: 1.5rem; letter-spacing: -0.02em; line-height: 1.1; }\n  @media (min-width: 768px) { .capy-suite-header h2 { font-size: 3.5rem; } }\n  .capy-gradient-text-blue { background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-image: linear-gradient(to right, var(--brand-600), #2563Eb); }\n  .capy-suite-header p { font-size: 1.15rem; color: var(--slate-500); max-width: 42rem; margin: 0 auto; line-height: 1.6; }\n\n  .capy-suite-grid-v2 { display: grid; grid-template-columns: 1fr; gap: 1.5rem; margin-bottom: 2rem; }\n  @media (min-width: 1024px) { .capy-suite-grid-v2 { grid-template-columns: 1fr 1fr; gap: 2.5rem; } }\n  .capy-suite-card-v2 { background: var(--white); border: 1px solid var(--slate-200); border-radius: 1.25rem; padding: 3rem 2.5rem; position: relative; transition: box-shadow 0.3s ease, transform 0.3s ease; display: flex; flex-direction: column; overflow: hidden; }\n  .capy-suite-card-v2:hover { transform: translateY(-4px); box-shadow: 0 20px 40px -12px rgba(15, 23, 42, 0.08); border-color: var(--slate-300); }\n  .capy-suite-tag { display: inline-block; align-self: flex-start; font-size: 0.7rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--slate-500); border: 1px solid var(--slate-200); border-radius: 100px; padding: 0.35rem 0.85rem; margin-bottom: 2.5rem; }\n  .capy-suite-app-row { display: flex; align-items: center; gap: 1rem; margin-bottom: 1rem; }\n  .capy-suite-monogram { width: 3.5rem; height: 3.5rem; border-radius: 0.75rem; border: 1px solid var(--slate-200); background: var(--slate-50); display: flex; align-items: center; justify-content: center; font-size: 0.85rem; font-weight: 800; color: var(--brand-900); letter-spacing: 0.05em; flex-shrink: 0; }\n  .capy-suite-app-name { font-size: 1.75rem; font-weight: 800; color: var(--brand-900); line-height: 1; letter-spacing: -0.02em; }\n  .capy-suite-app-sub { font-size: 0.85rem; color: var(--slate-500); font-weight: 500; margin-top: 0.35rem; }\n  .capy-suite-desc-v2 { font-size: 1.05rem; color: var(--slate-600); line-height: 1.6; font-weight: 400; margin-bottom: 2rem; }\n  .capy-suite-rule { height: 1px; width: 100%; background: var(--slate-100); margin-bottom: 2rem; }\n  .capy-suite-feats { display: flex; flex-direction: column; gap: 1.5rem; position: relative; z-index: 10; }\n  .capy-suite-feat-item { display: flex; gap: 1rem; align-items: flex-start; }\n  .capy-suite-check { width: 1.5rem; height: 1.5rem; border-radius: 50%; border: 1px solid var(--slate-200); background: var(--slate-50); display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-top: 0.15rem; }\n  .capy-suite-check svg { width: 0.85rem; height: 0.85rem; color: var(--slate-600); }\n  .capy-suite-ft-text h4 { font-size: 1.05rem; font-weight: 700; color: var(--brand-900); margin: 0 0 0.25rem 0; }\n  .capy-suite-ft-text p { font-size: 0.95rem; color: var(--slate-500); line-height: 1.5; font-weight: 400; margin: 0; }\n  .capy-suite-num { position: absolute; bottom: 2rem; right: 2rem; text-align: right; pointer-events: none; z-index: 0; }\n  .capy-suite-num-big { font-size: 4rem; font-weight: 800; color: rgba(15, 23, 42, 0.03); line-height: 1; letter-spacing: -0.05em; }\n  .capy-suite-num-lbl { font-size: 0.65rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--slate-400); margin-top: 0.25rem; }\n\n  .capy-eco-grid-v2 { display: grid; grid-template-columns: 1fr; gap: 1.5rem; margin-bottom: 4rem; }\n  @media (min-width: 1024px) { .capy-eco-grid-v2 { grid-template-columns: 1fr 1fr; gap: 2rem; } }\n  .capy-eco-card-v2 { background: var(--slate-50); border: 1px solid var(--slate-200); border-radius: 1rem; padding: 2.5rem; display: flex; gap: 1.25rem; align-items: flex-start; transition: background 0.2s ease, transform 0.2s ease, border-color 0.2s ease; }\n  .capy-eco-card-v2:hover { background: var(--white); border-color: var(--slate-300); transform: translateY(-2px); box-shadow: 0 10px 25px -5px rgba(15, 23, 42, 0.05); }\n  .capy-eco-ico-v2 { width: 3rem; height: 3rem; border-radius: 0.75rem; background: var(--white); border: 1px solid var(--slate-200); display: flex; align-items: center; justify-content: center; flex-shrink: 0; color: var(--brand-900); box-shadow: 0 2px 4px rgba(15, 23, 42, 0.02); }\n  .capy-eco-ico-v2 svg { width: 1.5rem; height: 1.5rem; }\n  .capy-eco-title-v2 { font-size: 1.15rem; font-weight: 800; color: var(--brand-900); margin-bottom: 0.35rem; }\n  .capy-eco-desc-v2 { font-size: 0.95rem; color: var(--slate-500); line-height: 1.6; margin: 0; }\n\n  \/* ==============================================\n     PART 4: THE TRAINING ACADEMY \n     ============================================== *\/\n  .capy-academy-section { padding: 8rem 0; background-color: var(--brand-900); position: relative; overflow: hidden; }\n  .capy-academy-glow { position: absolute; width: 800px; height: 800px; background: radial-gradient(circle, rgba(99, 102, 241, 0.3) 0%, rgba(168, 85, 247, 0.15) 30%, transparent 70%); top: -200px; left: -200px; pointer-events: none; z-index: 0; }\n  .capy-academy-grid { display: grid; grid-template-columns: 1fr; gap: 4rem; align-items: center; position: relative; z-index: 10; }\n  @media (min-width: 1024px) { .capy-academy-grid { grid-template-columns: 1.1fr 0.9fr; gap: 6rem; } }\n  .capy-academy-content h2 { font-size: 2.5rem; font-weight: 800; line-height: 1.1; color: var(--white); letter-spacing: -0.02em; margin-bottom: 1.25rem; }\n  @media (min-width: 768px) { .capy-academy-content h2 { font-size: 3.5rem; } }\n  .capy-academy-content p { font-size: 1.125rem; color: var(--slate-400); line-height: 1.6; margin-bottom: 3rem; }\n  @media (min-width: 768px) { .capy-academy-content p { font-size: 1.25rem; } }\n  .capy-academy-features { display: flex; flex-direction: column; gap: 1.25rem; margin-bottom: 3rem; }\n  .capy-academy-card { background-color: rgba(255, 255, 255, 0.03); border: 1px solid rgba(255, 255, 255, 0.05); border-radius: 1rem; padding: 1.5rem; display: flex; gap: 1.25rem; align-items: flex-start; transition: all 0.3s ease; }\n  .capy-academy-card:hover { background-color: rgba(255, 255, 255, 0.06); border-color: rgba(255, 255, 255, 0.15); transform: translateX(8px); }\n  .capy-academy-icon { flex-shrink: 0; width: 3rem; height: 3rem; border-radius: 0.75rem; display: flex; align-items: center; justify-content: center; background-color: rgba(255, 255, 255, 0.05); }\n  .capy-academy-icon svg { width: 1.5rem; height: 1.5rem; }\n  .capy-icon-fund { color: #60a5fa; box-shadow: inset 0 0 0 1px rgba(96, 165, 250, 0.3); } \n  .capy-icon-adv { color: #c084fc; box-shadow: inset 0 0 0 1px rgba(192, 132, 252, 0.3); } \n  .capy-icon-arab { color: #34d399; box-shadow: inset 0 0 0 1px rgba(52, 211, 153, 0.3); } \n  .capy-academy-text h4 { font-size: 1.125rem; font-weight: 700; color: var(--white); margin: 0 0 0.35rem 0; }\n  .capy-academy-text p { font-size: 0.95rem; color: var(--slate-400); line-height: 1.6; margin: 0; }\n  .capy-academy-actions { display: flex; flex-direction: column; gap: 1rem; }\n  @media (min-width: 640px) { .capy-academy-actions { flex-direction: row; } }\n  .capy-btn-glass { background-color: rgba(255, 255, 255, 0.05); color: var(--white) !important; border: 1px solid rgba(255, 255, 255, 0.1); backdrop-filter: blur(8px); }\n  .capy-btn-glass:hover { background-color: rgba(255, 255, 255, 0.1); border-color: rgba(255, 255, 255, 0.2); transform: translateY(-3px); }\n  .capy-academy-visual { position: relative; width: 100%; aspect-ratio: 4\/5; max-height: 700px; border-radius: 1.5rem; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5); border: 1px solid rgba(255, 255, 255, 0.1); }\n  @media (min-width: 1024px) { .capy-academy-visual { aspect-ratio: auto; height: 100%; } }\n  .capy-academy-visual img { width: 100%; height: 100%; object-fit: cover; border-radius: 1.5rem; }\n  .capy-delivery-badge { position: absolute; bottom: 2rem; left: -2rem; background: rgba(15, 23, 42, 0.65); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); padding: 1.5rem; border-radius: 1.25rem; border: 1px solid rgba(255, 255, 255, 0.15); box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.5); z-index: 20; max-width: 320px; animation: capy-float 6s ease-in-out infinite; }\n  @media (max-width: 767px) { .capy-delivery-badge { left: 1rem; right: 1rem; bottom: -2rem; max-width: none; } }\n  .capy-delivery-badge h5 { font-size: 0.85rem; font-weight: 800; color: #93c5fd; text-transform: uppercase; letter-spacing: 0.05em; margin: 0 0 0.75rem 0; }\n  .capy-delivery-list { display: flex; flex-direction: column; gap: 0.5rem; }\n  .capy-delivery-list span { display: flex; align-items: center; gap: 0.75rem; font-size: 0.95rem; color: var(--white); font-weight: 600; }\n  .capy-delivery-list svg { color: #4ade80; width: 1.25rem; height: 1.25rem; }\n\n  \/* ==============================================\n     PART 5: THE SAFETY NET \n     ============================================== *\/\n  .capy-safetynet-section { padding: 6rem 1.5rem; background: linear-gradient(135deg, var(--brand-900) 0%, #1e293b 100%); border-top: 1px solid rgba(255, 255, 255, 0.05); text-align: center; position: relative; overflow: hidden; }\n  .capy-safetynet-glow { position: absolute; top: -50%; left: 50%; transform: translateX(-50%); width: 800px; height: 800px; background: radial-gradient(circle, rgba(59, 130, 246, 0.1) 0%, transparent 60%); border-radius: 50%; pointer-events: none; z-index: 0; }\n  .capy-safetynet-content { position: relative; z-index: 10; max-width: 48rem; margin: 0 auto; }\n  .capy-safetynet-content h2 { font-size: 2rem; font-weight: 800; color: var(--white); margin-bottom: 1.25rem; letter-spacing: -0.02em; line-height: 1.2; }\n  @media (min-width: 768px) { .capy-safetynet-content h2 { font-size: 2.75rem; } }\n  .capy-safetynet-content p { font-size: 1.125rem; color: var(--slate-300); line-height: 1.6; margin-bottom: 2.5rem; }\n  .capy-safetynet-content .capy-btn-glass { border-color: rgba(255, 255, 255, 0.2); }\n  .capy-safetynet-content .capy-btn-glass:hover { background-color: var(--brand-600); border-color: var(--brand-600); }\n\n  \/* ==============================================\n     PART 6: THE GRAND FINALE \n     ============================================== *\/\n  .capy-finale-section { background-color: var(--brand-900); padding-top: 8rem; position: relative; overflow: hidden; }\n  .capy-cta-card { background-color: rgba(30, 41, 59, 0.6); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 2rem; padding: 4rem 2rem; text-align: center; position: relative; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5); margin-bottom: 6rem; overflow: hidden; }\n  @media (min-width: 768px) { .capy-cta-card { padding: 6rem 4rem; } }\n  .capy-cta-glow-bg { position: absolute; width: 100%; height: 100%; top: 0; left: 0; background: radial-gradient(circle at center, rgba(59, 130, 246, 0.2) 0%, transparent 70%); pointer-events: none; z-index: 0; }\n  .capy-cta-content { position: relative; z-index: 10; max-width: 48rem; margin: 0 auto; }\n  .capy-cta-card h2 { font-size: 2.5rem; font-weight: 800; line-height: 1.1; color: var(--white); margin-bottom: 1.5rem; letter-spacing: -0.02em; }\n  @media (min-width: 768px) { .capy-cta-card h2 { font-size: 3.5rem; } }\n  .capy-gradient-text-light { background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-image: linear-gradient(to right, #93c5fd, #c4b5fd); }\n  .capy-cta-card p { font-size: 1.125rem; color: var(--slate-300); line-height: 1.6; margin-bottom: 3rem; }\n  .capy-cta-actions { display: flex; flex-direction: column; gap: 1rem; justify-content: center; align-items: center; }\n  @media (min-width: 640px) { .capy-cta-actions { flex-direction: row; gap: 1.5rem; } }\n  .capy-btn-solid { display: inline-flex; align-items: center; justify-content: center; padding: 1.125rem 2rem; font-size: 1.05rem; font-weight: 700; border-radius: 1rem; text-decoration: none; background-color: var(--brand-600); color: var(--white) !important; border: 1px solid var(--brand-600); box-shadow: 0 10px 25px -5px rgba(37, 99, 235, 0.4); transition: all 0.3s ease; width: 100%; cursor: pointer; }\n  .capy-btn-solid:hover { background-color: var(--brand-500); transform: translateY(-3px); box-shadow: 0 15px 30px -5px rgba(37, 99, 235, 0.5); }\n  @media (min-width: 640px) { .capy-btn-solid { width: auto; } }\n\n  .capy-footer-master { border-top: 1px solid rgba(255, 255, 255, 0.05); padding: 5rem 0 2rem 0; }\n  .capy-footer-grid { display: grid; grid-template-columns: 1fr; gap: 3rem; margin-bottom: 4rem; }\n  @media (min-width: 768px) { .capy-footer-grid { grid-template-columns: 1fr 1fr; } .capy-footer-form-col { grid-column: span 2; } }\n  @media (min-width: 1024px) { .capy-footer-grid { grid-template-columns: 1.2fr 1fr 1.5fr; gap: 4rem; } .capy-footer-form-col { grid-column: span 1; } }\n  .capy-footer-brand p { color: var(--slate-400); font-size: 0.95rem; line-height: 1.6; margin: 1.5rem 0; max-width: 20rem; }\n  .capy-footer-logo { width: 160px; height: auto; }\n  .capy-footer-contact-list { display: flex; flex-direction: column; gap: 0.75rem; }\n  .capy-footer-contact-list span { display: flex; align-items: center; gap: 0.75rem; color: var(--slate-300); font-size: 0.9rem; }\n  .capy-footer-contact-list svg { width: 1.2rem; height: 1.2rem; color: var(--brand-500); }\n  .capy-footer-master h4 { color: var(--white); font-size: 1.1rem; font-weight: 800; letter-spacing: 0.05em; text-transform: uppercase; margin-bottom: 1.5rem; }\n  .capy-footer-links { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }\n  .capy-footer-links a { color: var(--slate-400); text-decoration: none; font-size: 0.9rem; transition: color 0.2s; }\n  .capy-footer-links a:hover { color: var(--white); }\n\n  .capy-footer-form .wpcf7-form-control.wpcf7-text, .capy-footer-form .wpcf7-form-control.wpcf7-textarea, .capy-footer-form .wpcf7-form-control.wpcf7-select { width: 100%; box-sizing: border-box; padding: 0.875rem 1rem; border-radius: 0.75rem; background-color: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); color: var(--white); font-family: var(--font-sans); font-size: 0.9rem; outline: none; transition: all 0.3s; margin-bottom: 0.75rem; }\n  .capy-footer-form .wpcf7-form-control::placeholder { color: var(--slate-500); }\n  .capy-footer-form .wpcf7-form-control:focus { border-color: var(--brand-500); background-color: rgba(255, 255, 255, 0.08); }\n  .capy-footer-form .wpcf7-form-control.wpcf7-textarea { resize: vertical; min-height: 80px; }\n  .capy-footer-form .wpcf7-submit { display: inline-flex !important; align-items: center !important; justify-content: center !important; padding: 1.125rem 2rem !important; font-size: 1.05rem !important; font-weight: 700 !important; border-radius: 1rem !important; background-color: var(--brand-600) !important; color: var(--white) !important; border: 1px solid var(--brand-600) !important; transition: all 0.3s ease !important; width: 100% !important; cursor: pointer !important; margin-top: 0.5rem !important; }\n  .capy-footer-form .wpcf7-submit:hover { background-color: var(--brand-500) !important; transform: translateY(-3px) !important; box-shadow: 0 15px 30px -5px rgba(37, 99, 235, 0.5) !important; }\n\n  .capy-footer-bottom { text-align: center; gap: 1rem; padding-top: 2rem; border-top: 1px solid rgba(255, 255, 255, 0.05); color: var(--slate-500); font-size: 0.85rem; }\n  @media (min-width: 640px) { .capy-footer-bottom { flex-direction: row; justify-content: space-between; } }\n  .capy-legal-links { display: flex; gap: 1.5rem; }\n  .capy-legal-links a { color: var(--slate-500); text-decoration: none; transition: color 0.2s; }\n  .capy-legal-links a:hover { color: var(--white); }\n\n  \/* --- MODAL STYLES --- *\/\n  .capy-modal-overlay { position: fixed; inset: 0; background-color: rgba(15, 23, 42, 0.75); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); z-index: 9999; display: flex; align-items: center; justify-content: center; padding: 1.5rem; opacity: 0; visibility: hidden; transition: all 0.3s ease; }\n  .capy-modal-overlay.capy-modal-active { opacity: 1; visibility: visible; }\n  .capy-modal-box.capy-modal-split { background-color: var(--white); width: 100%; max-width: 850px; border-radius: 1.5rem; padding: 0; position: relative; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5); transform: scale(0.95) translateY(20px); transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1); display: flex; flex-direction: column; overflow: hidden; }\n  .capy-modal-overlay.capy-modal-active .capy-modal-box { transform: scale(1) translateY(0); }\n  .capy-modal-visual { display: none; }\n  .capy-modal-content { padding: 2.5rem 2rem; position: relative; }\n  @media (min-width: 768px) {\n    .capy-modal-box.capy-modal-split { flex-direction: row; }\n    .capy-modal-visual { display: flex; width: 45%; background-image: linear-gradient(to bottom, rgba(15, 23, 42, 0.1), rgba(15, 23, 42, 0.9)), url('https:\/\/capytech.com\/wp-content\/uploads\/2026\/10\/capytech-lms-form-bg.webp'); background-size: cover; background-position: left; flex-direction: column; justify-content: flex-end; padding: 2.5rem; }\n    .capy-modal-visual-text h4 { font-size: 1.5rem; font-weight: 700; color: var(--white); margin-bottom: 0.5rem; line-height: 1.2; }\n    .capy-modal-visual-text p { font-size: 0.95rem; color: var(--slate-300); line-height: 1.5; margin: 0; }\n    .capy-modal-content { width: 55%; padding: 3rem; }\n  }\n  .capy-modal-close { position: absolute; top: 1.5rem; right: 1.5rem; background: transparent; border: none; color: var(--slate-400); cursor: pointer; transition: color 0.2s ease; z-index: 10; }\n  .capy-modal-close:hover { color: var(--slate-900); }\n  .capy-modal-header { text-align: center; margin-bottom: 2rem; }\n  .capy-modal-icon { width: 3rem; height: 3rem; background-color: var(--brand-50); color: var(--brand-600); border-radius: 0.75rem; display: flex; align-items: center; justify-content: center; margin: 0 auto 1rem auto; }\n  .capy-modal-header h3 { font-size: 1.5rem; font-weight: 800; color: var(--brand-900); margin-bottom: 0.5rem; letter-spacing: -0.02em; }\n  .capy-modal-header p { font-size: 0.95rem; color: var(--slate-500); line-height: 1.5; margin: 0; }\n  .capy-modal-content .wpcf7-form-control.wpcf7-text, .capy-modal-content .wpcf7-form-control.wpcf7-textarea, .capy-modal-content .wpcf7-form-control.wpcf7-select { width: 100%; padding: 0.875rem 1rem; border-radius: 0.75rem; border: 1px solid var(--slate-200); background-color: var(--slate-50); font-size: 0.95rem; font-family: var(--font-sans); color: var(--slate-900); transition: all 0.2s ease; outline: none; box-sizing: border-box; margin-bottom: 1rem; }\n  .capy-modal-content .wpcf7-form-control.wpcf7-textarea { resize: vertical; min-height: 100px; }\n  .capy-modal-content .wpcf7-form-control:focus { background-color: var(--white); border-color: var(--brand-500); box-shadow: 0 0 0 3px var(--brand-100); }\n  .capy-modal-content .wpcf7 form .wpcf7-submit { display: block !important; width: 100% !important; padding: 1rem !important; font-size: 1rem !important; background-color: var(--brand-600) !important; color: var(--white) !important; border: none !important; border-radius: 0.75rem !important; font-weight: 700 !important; cursor: pointer !important; transition: all 0.3s cubic-bezier(0.165, 0.84, 0.44, 1) !important; }\n  .capy-modal-content .wpcf7 form .wpcf7-submit:hover { background-color: var(--brand-500) !important; transform: translateY(-2px); }\n  .wpcf7 form .wpcf7-spinner { display: none !important; }\n  .wpcf7 form.submitting .wpcf7-submit { opacity: 0.7 !important; pointer-events: none; }\n\n  \/* ==============================================\n     FINAL POLISH: MOBILE RESPONSIVENESS\n     ============================================== *\/\n  @media (max-width: 767px) {\n    .capy-art-hero { padding: 6rem 0 3rem 0 !important; }\n    .capy-advantage-section, .capy-suite-section, .capy-academy-section, .capy-safetynet-section, .capy-finale-section { padding-top: 4.5rem !important; padding-bottom: 4.5rem !important; }\n    .capy-art-headline { font-size: 2.15rem !important; line-height: 1.2 !important; margin-bottom: 1.25rem !important; padding: 0 0.5rem; }\n    .capy-adv-header h2, .capy-suite-header h2, .capy-academy-content h2, .capy-safetynet-content h2, .capy-cta-card h2 { font-size: 2rem !important; line-height: 1.25 !important; margin-bottom: 1rem !important; }\n    .capy-art-subhead, .capy-adv-header p, .capy-suite-header p, .capy-academy-content p, .capy-safetynet-content p, .capy-cta-card p { font-size: 1rem !important; line-height: 1.65 !important; margin-bottom: 2.5rem !important; padding: 0 0.5rem; }\n    .capy-art-lockup { padding: 0.75rem 1.25rem !important; gap: 0.75rem !important; margin-bottom: 2rem !important; }\n    .capy-lockup-capytech, .capy-lockup-articulate { width: 100px !important; height: auto !important; }\n    .capy-art-divider { width: 1.75rem !important; height: 1.75rem !important; }\n    .capy-art-divider svg { width: 0.85rem !important; height: 0.85rem !important; }\n    .capy-ui-sticker { display: none !important; }\n    .capy-art-actions { gap: 1rem !important; margin-bottom: 3rem !important; padding: 0 1rem; }\n    .capy-art-actions .capy-btn { width: 100% !important; padding: 1.125rem !important; font-size: 1rem !important; }\n    .capy-adv-content { padding: 1.75rem !important; }\n    .capy-adv-visual { height: 220px !important; } \n    .capy-suite-card-v2 { padding: 1.75rem !important; }\n    .capy-suite-tag { margin-bottom: 1.5rem !important; }\n    .capy-suite-app-name { font-size: 1.5rem !important; }\n    .capy-suite-desc-v2 { font-size: 1rem !important; margin-bottom: 1.5rem !important; }\n    .capy-suite-num { bottom: 1rem !important; right: 1rem !important; }\n    .capy-suite-num-big { font-size: 2.5rem !important; }\n    .capy-eco-card-v2 { padding: 1.5rem !important; flex-direction: column !important; gap: 1rem !important; }\n    .capy-academy-card { padding: 1.5rem !important; flex-direction: column !important; gap: 1rem !important; }\n    .capy-cta-card { padding: 2.5rem 1.5rem !important; border-radius: 1.5rem !important; }\n    .capy-cta-actions { width: 100% !important; gap: 1rem !important; }\n    .capy-cta-actions .capy-btn-solid, .capy-cta-actions .capy-btn-glass, .capy-cta-actions .capy-btn-outline-green { width: 100% !important; padding: 1.125rem !important; font-size: 1rem !important; }\n    .capy-delivery-badge { position: relative !important; bottom: 0 !important; left: 0 !important; right: 0 !important; margin-top: -1.5rem !important; border-radius: 1rem !important; padding: 1.25rem !important; }\n    \n    \/* ==============================================\n       MOBILE GPU PERFORMANCE RELIEF (The 100 Score Fix)\n       Kills heavy paint calculations to fix scroll lag\n       ============================================== *\/\n       \n    \/* 1. Hide massive blurred glowing orbs that drain VRAM *\/\n    .capy-art-glow,\n    .capy-academy-glow,\n    .capy-safetynet-glow,\n    .capy-cta-glow-bg {\n      display: none !important;\n    }\n\n    \/* 2. Remove frosted glass on cards and fallback to a sleek solid color *\/\n    .capy-cta-card,\n    .capy-delivery-badge,\n    .capy-art-lockup {\n      backdrop-filter: none !important;\n      -webkit-backdrop-filter: none !important;\n    }\n    \n    \/* Give the CTA card a solid dark background since glass is off *\/\n    .capy-cta-card {\n      background-color: #1e293b !important; \n    }\n\n    \/* 3. Force Hardware Acceleration on scroll animations *\/\n    .capy-reveal, \n    .capy-reveal-up, \n    .capy-reveal-left, \n    .capy-reveal-right {\n      transform: translateZ(0); \n      -webkit-transform: translateZ(0);\n    }\n\n    \/* 4. TICKER LAG FIX: Kill the grayscale filter and use basic compositing *\/\n    .capy-marquee-track {\n      transform: translateZ(0);\n      -webkit-transform: translateZ(0);\n    }\n    \n    .capy-marquee-group img {\n      filter: none !important; \n      opacity: 0.7 !important; \/* Softens them since grayscale is off *\/\n      transform: translateZ(0);\n      -webkit-transform: translateZ(0);\n    }\n  \n  }\n<\/style>\n\n<div class=\"capy-custom-wrapper\">\n<style>\n.cxe{font-family:inherit;color:#0f172a;line-height:1.6;overflow-wrap:break-word}\n.cxe *,.cxe *::before,.cxe *::after{box-sizing:border-box}\n.cxe-sec{padding:5rem 1.5rem}\n.cxe-hero{padding:140px 1.5rem 4.5rem;background:radial-gradient(55% 80% at 8% 0%,rgba(37,99,235,.12),transparent 70%),radial-gradient(45% 70% at 100% 100%,rgba(96,165,250,.10),transparent 70%),#f8fafc}\n.cxe-light{background:#ffffff}\n.cxe-soft{background:#f8fafc}\n.cxe-dark{background:linear-gradient(135deg,#0f172a 0%,#1e293b 100%);color:#e2e8f0}\n.cxe-wrap{max-width:1180px;margin:0 auto}\n.cxe-eyebrow{display:inline-block;font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#1d4ed8;margin-bottom:.75rem}\n.cxe-dark .cxe-eyebrow{color:#93c5fd}\n.cxe h1{font-size:clamp(2.1rem,4.6vw,3.4rem);font-weight:800;letter-spacing:-.025em;line-height:1.1;margin:0 0 1.1rem;color:#0f172a;max-width:880px}\n.cxe h2{font-size:clamp(1.8rem,3.4vw,2.6rem);font-weight:800;letter-spacing:-.02em;line-height:1.15;margin:0 0 1rem;color:#0f172a}\n.cxe h3{font-size:1.15rem;font-weight:800;line-height:1.3;margin:0 0 .5rem;color:#0f172a}\n.cxe-dark h2,.cxe-dark h3{color:#ffffff}\n.cxe p{margin:0 0 1rem}\n.cxe-lead{font-size:1.15rem;line-height:1.7;color:#475569;max-width:760px;margin:0 0 1.75rem}\n.cxe-intro{font-size:1.08rem;line-height:1.7;color:#475569;max-width:760px;margin:0 0 2.5rem}\n.cxe-dark .cxe-intro,.cxe-dark p{color:#cbd5e1}\n.cxe-small{font-size:.92rem;color:#64748b}\n.cxe-btns{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}\n.cxe-btn{display:inline-block;background:#2563eb;color:#ffffff;font-weight:700;font-size:1rem;line-height:1.2;padding:.85rem 1.4rem;border-radius:10px;border:1px solid #2563eb;text-decoration:none;cursor:pointer;font-family:inherit}\n.cxe-btn:hover,.cxe-btn:focus{background:#1d4ed8;border-color:#1d4ed8;color:#ffffff}\n.cxe-btn-o{background:#ffffff;color:#0f172a;border:1px solid #cbd5e1}\n.cxe-btn-o:hover,.cxe-btn-o:focus{background:#ffffff;color:#1d4ed8;border-color:#2563eb}\n.cxe-btn-wa{background:#15803d;border-color:#15803d}\n.cxe-btn-wa:hover,.cxe-btn-wa:focus{background:#166534;border-color:#166534}\n.cxe a:focus-visible,.cxe button:focus-visible,.cxe summary:focus-visible,.cxe input:focus-visible,.cxe select:focus-visible{outline:3px solid #f59e0b;outline-offset:2px}\n.cxe-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}\n.cxe-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}\n.cxe-card{background:#ffffff;border:1px solid #e2e8f0;border-radius:16px;padding:1.6rem;box-shadow:0 10px 30px rgba(15,23,42,.06)}\n.cxe-card p{margin:0;color:#475569;line-height:1.65}\n.cxe-card a{color:#1d4ed8;font-weight:700}\n.cxe-num{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;background:#eff6ff;color:#1d4ed8;font-weight:800;margin-bottom:.9rem}\n.cxe-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem}\n.cxe-step{border:1px solid rgba(148,163,184,.3);border-radius:16px;padding:1.4rem;background:rgba(255,255,255,.04)}\n.cxe-step b{display:block;color:#ffffff;font-size:1.05rem;margin:.5rem 0 .4rem}\n.cxe-step span{color:#93c5fd;font-weight:800}\n.cxe-step p{margin:0;line-height:1.6;color:#cbd5e1}\n.cxe-note{background:#eff6ff;border:1px solid #bfdbfe;border-radius:14px;padding:1.1rem 1.3rem;color:#1e3a8a;margin:1.5rem 0 0}\n.cxe-note p{margin:0;color:#1e3a8a}\n.cxe-tool{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:2rem;align-items:start}\n.cxe-panel{background:#ffffff;border:1px solid #e2e8f0;border-radius:16px;padding:1.75rem;box-shadow:0 10px 30px rgba(15,23,42,.06);min-width:0}\n.cxe-q{border:0;padding:0;margin:0 0 1.75rem;min-width:0}\n.cxe-q:last-child{margin-bottom:0}\n.cxe-q legend,.cxe-label{display:block;font-weight:800;font-size:1.02rem;color:#0f172a;margin:0 0 .3rem;padding:0}\n.cxe-hint{color:#64748b;font-size:.92rem;margin:0 0 .75rem}\n.cxe-chips{display:flex;flex-wrap:wrap;gap:.5rem}\n.cxe-chip{position:relative;display:inline-block}\n.cxe-chip input{position:absolute;opacity:0;width:1px;height:1px;margin:0}\n.cxe-chip span{display:inline-block;padding:.6rem 1rem;border:1px solid #cbd5e1;border-radius:999px;background:#ffffff;font-weight:600;color:#334155;cursor:pointer;line-height:1.2}\n.cxe-chip input:checked+span{background:#2563eb;border-color:#2563eb;color:#ffffff}\n.cxe-chip input:focus-visible+span{outline:3px solid #f59e0b;outline-offset:2px}\n.cxe-opts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem}\n.cxe-opt{position:relative;display:block;min-width:0}\n.cxe-opt input{position:absolute;opacity:0;width:1px;height:1px;margin:0}\n.cxe-opt span{display:block;height:100%;padding:.85rem 1rem;border:1px solid #cbd5e1;border-radius:12px;background:#ffffff;cursor:pointer;color:#475569;font-size:.92rem;line-height:1.45}\n.cxe-opt span b{display:block;color:#0f172a;font-size:1rem;margin-bottom:.2rem}\n.cxe-opt input:checked+span{border-color:#2563eb;background:#eff6ff;box-shadow:inset 0 0 0 1px #2563eb}\n.cxe-opt input:focus-visible+span{outline:3px solid #f59e0b;outline-offset:2px}\n.cxe-check{display:flex;gap:.65rem;align-items:flex-start;margin:0 0 .55rem;cursor:pointer;color:#334155;font-weight:600}\n.cxe-check input{width:20px;height:20px;margin:.15rem 0 0;flex:0 0 auto;accent-color:#2563eb;cursor:pointer}\n.cxe-field{display:flex;flex-wrap:wrap;gap:.6rem 1rem;align-items:center}\n.cxe-field input[type=number]{width:6.5rem;padding:.6rem .75rem;border:1px solid #94a3b8;border-radius:10px;font:inherit;color:#0f172a;background:#ffffff}\n.cxe-result{position:sticky;top:120px;background:linear-gradient(135deg,#0f172a 0%,#1e293b 100%);color:#e2e8f0;border-radius:16px;padding:1.75rem;box-shadow:0 18px 40px rgba(15,23,42,.18);min-width:0}\n.cxe-result h2,.cxe-result h3{color:#ffffff}\n.cxe-result p{color:#cbd5e1}\n.cxe-result a{color:#93c5fd}\n.cxe-k{display:block;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#93c5fd;margin-bottom:.4rem}\n.cxe-big{font-size:clamp(2rem,4vw,2.8rem);font-weight:800;letter-spacing:-.02em;line-height:1.1;color:#ffffff;margin:0 0 .6rem}\n.cxe-bars{margin:1.25rem 0 0;padding:0;list-style:none}\n.cxe-bars li{margin:0 0 .85rem}\n.cxe-bars .row{display:flex;justify-content:space-between;gap:1rem;font-size:.92rem;color:#e2e8f0;margin-bottom:.3rem}\n.cxe-bars .row b{color:#ffffff;white-space:nowrap}\n.cxe-bar{height:10px;background:rgba(148,163,184,.25);border-radius:999px;overflow:hidden}\n.cxe-bar i{display:block;height:100%;background:#60a5fa;border-radius:999px}\n.cxe-acts{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.25rem}\n.cxe-acts button{background:transparent;color:#e2e8f0;border:1px solid rgba(148,163,184,.5);border-radius:10px;padding:.55rem .9rem;font:inherit;font-size:.9rem;font-weight:600;cursor:pointer}\n.cxe-acts button:hover{border-color:#93c5fd;color:#ffffff}\n.cxe-cta{text-align:center}\n.cxe-cta .cxe-intro{margin-left:auto;margin-right:auto}\n.cxe-cta .cxe-btns{justify-content:center}\n.cxe-faqwrap{max-width:860px;margin:0 auto}\n.cxe details{background:#ffffff;border:1px solid #e2e8f0;border-radius:14px;margin:0 0 .75rem;overflow:hidden}\n.cxe summary{cursor:pointer;list-style:none;padding:1.15rem 3rem 1.15rem 1.4rem;font-weight:700;font-size:1.05rem;position:relative;color:#0f172a}\n.cxe summary::-webkit-details-marker{display:none}\n.cxe summary::after{content:\"+\";position:absolute;right:1.3rem;top:50%;transform:translateY(-50%);font-size:1.5rem;font-weight:400;color:#2563eb}\n.cxe details[open] summary::after{content:\"\\2212\"}\n.cxe details p{margin:0;padding:0 1.4rem 1.25rem;color:#475569;line-height:1.7}\n.cxe details a{color:#1d4ed8}\n.cxe-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}\n@media (max-width:1000px){.cxe-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}\n@media (max-width:900px){.cxe-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cxe-tool{grid-template-columns:1fr}.cxe-result{position:static}}\n@media (max-width:640px){.cxe-sec{padding:3.5rem 1rem}.cxe-hero{padding:110px 1rem 3rem}.cxe-grid,.cxe-grid2,.cxe-steps,.cxe-opts{grid-template-columns:1fr}.cxe-panel,.cxe-result{padding:1.25rem}.cxe-btns .cxe-btn{width:100%;text-align:center}}\n@media print{.cxe-hero{padding:1rem 0}.cxe-sec{padding:1rem 0}.cxe-noprint,.cxe-cta,.cxe-faq,.cxe-acts{display:none!important}.cxe-result{position:static;box-shadow:none;background:#ffffff!important;color:#0f172a!important;border:1px solid #94a3b8}.cxe-result *{color:#0f172a!important}.cxe-bar{border:1px solid #94a3b8}.cxe-bar i{background:#334155!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.cxe-panel,.cxe-card{box-shadow:none}}\n\n.cxe-drivers{margin:1.25rem 0 0;padding:1rem 1.1rem;border:1px solid rgba(148,163,184,.3);border-radius:12px;background:rgba(255,255,255,.04)}\n.cxe-drivers h3{font-size:1rem;margin:0 0 .5rem}\n.cxe-drivers ul{margin:0;padding:0 0 0 1.1rem}\n.cxe-drivers li{margin:0 0 .45rem;color:#cbd5e1;font-size:.95rem}\n.cxe-drivers li b{color:#ffffff}\n.cxe-legal{font-size:.85rem;color:#94a3b8!important;margin:1rem 0 0}\n.cxe-langrow{display:flex;flex-wrap:wrap;gap:.25rem 1.5rem;margin-bottom:.6rem}\n<\/style>\n<div class=\"cxe\">\n<section class=\"cxe-hero\">\n  <div class=\"cxe-wrap\">\n    <span class=\"cxe-eyebrow\">Free planning tool<\/span>\n    <h1>E-learning build time estimator<\/h1>\n    <p class=\"cxe-lead\">Planning a launch date for a new course? Tell us how long it is, how interactive it should be, the media and the languages you need, and see a realistic timeline in weeks, plus the factors that stretch it. Arabic versions and right to left layouts are counted as a step of their own, because they take real time to do well.<\/p>\n    <div class=\"cxe-btns cxe-noprint\"><a class=\"cxe-btn\" href=\"#cxe-tool\">Start your estimate<\/a><a class=\"cxe-btn cxe-btn-o\" href=\"\/en\/contact\/\">Book a free demo<\/a><\/div>\n  <\/div>\n<\/section>\n<section class=\"cxe-sec cxe-light\" id=\"cxe-tool\" aria-labelledby=\"cxe-tool-h\">\n  <div class=\"cxe-wrap\">\n    <span class=\"cxe-eyebrow\">The estimator<\/span>\n    <h2 id=\"cxe-tool-h\">Describe your course<\/h2>\n    <p class=\"cxe-intro\">Six quick choices. The estimate updates as you go, and nothing you enter is sent anywhere: it is all worked out in your browser.<\/p>\n    <div class=\"cxe-tool\">\n      <form class=\"cxe-panel cxe-noprint\" id=\"cxe-form\" onsubmit=\"return false\">\n        <fieldset class=\"cxe-q\">\n          <legend>1. Course length<\/legend>\n          <p class=\"cxe-hint\">A module is one course a learner completes in a sitting. Count the learning time, not the number of slides.<\/p>\n          <div class=\"cxe-field\" style=\"margin-bottom:.9rem\"><label for=\"cxe-mods\" style=\"font-weight:600\">Number of modules<\/label><input type=\"number\" id=\"cxe-mods\" min=\"1\" max=\"30\" step=\"1\" value=\"1\" inputmode=\"numeric\"><\/div>\n          <p class=\"cxe-hint\" id=\"cxe-mins-l\" style=\"margin-bottom:.5rem\">Learning time per module<\/p>\n          <div class=\"cxe-chips\" role=\"radiogroup\" aria-labelledby=\"cxe-mins-l\"><label class=\"cxe-chip\"><input type=\"radio\" name=\"cxe-mins\" value=\"10\"><span>10 min<\/span><\/label><label class=\"cxe-chip\"><input type=\"radio\" name=\"cxe-mins\" value=\"20\" checked><span>20 min<\/span><\/label><label class=\"cxe-chip\"><input type=\"radio\" name=\"cxe-mins\" value=\"30\"><span>30 min<\/span><\/label><label class=\"cxe-chip\"><input type=\"radio\" name=\"cxe-mins\" value=\"45\"><span>45 min<\/span><\/label><label class=\"cxe-chip\"><input type=\"radio\" name=\"cxe-mins\" value=\"60\"><span>60 min<\/span><\/label><\/div>\n        <\/fieldset>\n        <fieldset class=\"cxe-q\">\n          <legend>2. Interactivity<\/legend>\n          <p class=\"cxe-hint\">How much the learner does on each screen.<\/p>\n          <div class=\"cxe-opts\"><label class=\"cxe-opt\"><input type=\"radio\" name=\"cxe-level\" value=\"basic\"><span><b>Mostly read and watch<\/b>Text, images and short questions. Learners move through at their own pace.<\/span><\/label><label class=\"cxe-opt\"><input type=\"radio\" name=\"cxe-level\" value=\"inter\" checked><span><b>Click, explore and answer<\/b>Tabs, hotspots, drag and drop and knowledge checks on most screens.<\/span><\/label><label class=\"cxe-opt\"><input type=\"radio\" name=\"cxe-level\" value=\"adv\"><span><b>Scenarios and simulations<\/b>Branching choices, realistic simulations or game elements.<\/span><\/label><\/div>\n        <\/fieldset>\n        <fieldset class=\"cxe-q\">\n          <legend>3. Media<\/legend>\n          <p class=\"cxe-hint\">Tick everything the course will include.<\/p>\n          <label class=\"cxe-check\"><input type=\"checkbox\" id=\"cxe-vo\"> Voiceover narration<\/label>\n          <label class=\"cxe-check\"><input type=\"checkbox\" id=\"cxe-video\"> Filmed or edited video<\/label>\n          <label class=\"cxe-check\"><input type=\"checkbox\" id=\"cxe-anim\"> Custom animation or motion graphics<\/label>\n        <\/fieldset>\n        <fieldset class=\"cxe-q\">\n          <legend>4. Languages<\/legend>\n          <p class=\"cxe-hint\">The first language is built once. Each further version is translated, rebuilt and checked.<\/p>\n          <div class=\"cxe-langrow\">\n            <label class=\"cxe-check\"><input type=\"checkbox\" id=\"cxe-en\" checked> English<\/label>\n            <label class=\"cxe-check\"><input type=\"checkbox\" id=\"cxe-ar\"> Arabic (right to left)<\/label>\n          <\/div>\n          <div class=\"cxe-field\"><label for=\"cxe-other\" style=\"font-weight:600\">Other languages<\/label><input type=\"number\" id=\"cxe-other\" min=\"0\" max=\"15\" step=\"1\" value=\"0\" inputmode=\"numeric\"><\/div>\n        <\/fieldset>\n        <fieldset class=\"cxe-q\">\n          <legend>5. Review rounds<\/legend>\n          <p class=\"cxe-hint\">How many times your stakeholders will review and send changes before sign-off.<\/p>\n          <div class=\"cxe-chips\"><label class=\"cxe-chip\"><input type=\"radio\" name=\"cxe-rev\" value=\"1\"><span>1<\/span><\/label><label class=\"cxe-chip\"><input type=\"radio\" name=\"cxe-rev\" value=\"2\" checked><span>2<\/span><\/label><label class=\"cxe-chip\"><input type=\"radio\" name=\"cxe-rev\" value=\"3\"><span>3<\/span><\/label><label class=\"cxe-chip\"><input type=\"radio\" name=\"cxe-rev\" value=\"4\"><span>4<\/span><\/label><\/div>\n        <\/fieldset>\n        <fieldset class=\"cxe-q\">\n          <legend>6. Source material<\/legend>\n          <p class=\"cxe-hint\">How ready is the content you will give us?<\/p>\n          <div class=\"cxe-opts\"><label class=\"cxe-opt\"><input type=\"radio\" name=\"cxe-src\" value=\"ready\"><span><b>Ready and approved<\/b>Content is final and an expert has signed it off.<\/span><\/label><label class=\"cxe-opt\"><input type=\"radio\" name=\"cxe-src\" value=\"partial\" checked><span><b>Mostly there<\/b>Slides or documents exist but need shaping into a learning flow.<\/span><\/label><label class=\"cxe-opt\"><input type=\"radio\" name=\"cxe-src\" value=\"scratch\"><span><b>Starting from scratch<\/b>We will research and write the content with your experts.<\/span><\/label><\/div>\n        <\/fieldset>\n      <\/form>\n      <div class=\"cxe-result\" id=\"cxe-out\" aria-live=\"polite\">\n        <span class=\"cxe-k\">Estimated timeline<\/span>\n        <p class=\"cxe-big\">Your estimate appears here<\/p>\n        <p>Turn on JavaScript to see the estimate. The factors behind it are explained below.<\/p>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n<section class=\"cxe-sec cxe-soft\">\n  <div class=\"cxe-wrap\">\n    <span class=\"cxe-eyebrow\">What drives the timeline<\/span>\n    <h2>Six things that decide how long a course takes<\/h2>\n    <p class=\"cxe-intro\">Most delays are not in the build itself. They come from content that is still changing, extra review rounds and language versions that were not planned from the start.<\/p>\n    <div class=\"cxe-grid\">\n      <div class=\"cxe-card\"><span class=\"cxe-num\">1<\/span><h3>Learning time<\/h3><p>Build effort grows with every minute of finished learning. Several modules can run side by side, so ten modules rarely take ten times as long as one.<\/p><\/div>\n      <div class=\"cxe-card\"><span class=\"cxe-num\">2<\/span><h3>Interactivity<\/h3><p>A branching scenario can take several times the effort of a screen people simply read. Use rich interaction where decisions matter, and keep the rest light.<\/p><\/div>\n      <div class=\"cxe-card\"><span class=\"cxe-num\">3<\/span><h3>Media<\/h3><p>Voiceover needs a locked script before recording. Video and custom animation add planning, production and editing time of their own.<\/p><\/div>\n      <div class=\"cxe-card\"><span class=\"cxe-num\">4<\/span><h3>Arabic and right to left<\/h3><p>An Arabic version is more than translated text. Layouts, navigation, icons and images are mirrored, Arabic fonts are checked on small screens, and a native speaker reviews the result.<\/p><\/div>\n      <div class=\"cxe-card\"><span class=\"cxe-num\">5<\/span><h3>Review rounds<\/h3><p>Each round means time for your reviewers to comment and time for us to make the changes. One combined set of comments per round keeps things moving.<\/p><\/div>\n      <div class=\"cxe-card\"><span class=\"cxe-num\">6<\/span><h3>Source material<\/h3><p>Approved, final content is the single biggest time saver. When content is still being written or agreed, the design stage takes longer.<\/p><\/div>\n    <\/div>\n    <div class=\"cxe-note\"><p><b>How the estimate is worked out.<\/b> Build effort uses the published ranges from the Chapman Alliance study (2010) of development hours per hour of finished e-learning, for each level of interactivity. We convert effort into weeks for a small dedicated production team, then add time for preparation, media, each language version and each review round. It is a planning guide, not a quote.<\/p><\/div>\n  <\/div>\n<\/section>\n<section class=\"cxe-sec cxe-dark cxe-cta\">\n  <div class=\"cxe-wrap\">\n    <span class=\"cxe-eyebrow\">Talk to us<\/span>\n    <h2>Have a launch date in mind?<\/h2>\n    <p class=\"cxe-intro\">Tell us the date and what the course needs to cover. We will show you what scope fits the time you have, and build a free demo so you can see the quality first.<\/p>\n    <div class=\"cxe-btns\">\n      <a class=\"cxe-btn\" href=\"\/en\/contact\/\">Book a free demo<\/a>\n      <a class=\"cxe-btn cxe-btn-wa\" href=\"https:\/\/wa.me\/971585426893\" target=\"_blank\" rel=\"noopener\">Message us on WhatsApp<\/a>\n    <\/div>\n  <\/div>\n<\/section>\n<section class=\"cxe-sec cxe-light cxe-faq\">\n  <div class=\"cxe-wrap cxe-faqwrap\">\n    <span class=\"cxe-eyebrow\">FAQ<\/span>\n    <h2>Build time questions<\/h2>\n    <details><summary>How accurate is this estimate?<\/summary><p>It is a planning range based on published development benchmarks and the way real projects run. Your own timeline depends on how quickly content is approved and how many people review it. For a firm timeline, <a href=\"\/en\/contact\/\">talk to us<\/a> and we will plan it with you.<\/p><\/details>\n    <details><summary>Why does an Arabic version add so much time?<\/summary><p>Arabic reads right to left, so layouts, menus, progress bars, icons and some images are mirrored, not just translated. Arabic fonts need checking on phones, mixed Arabic and English terms need care, and a native speaker should review every screen. Voiceover is recorded again in Arabic too.<\/p><\/details>\n    <details><summary>Can we build the course in Arabic first?<\/summary><p>Yes. Untick English and tick Arabic, and the estimator treats Arabic as the first language. Building natively in right to left from the start is usually quicker than converting an English course later.<\/p><\/details>\n    <details><summary>What is the quickest way to shorten the timeline?<\/summary><p>Give us approved content, agree who signs off before work starts, send one combined set of comments per review round, and decide on voiceover and video early. Those four steps save more time than anything else.<\/p><\/details>\n    <details><summary>Do ten modules take ten times as long as one?<\/summary><p>No. Once the design is agreed, modules can be built in parallel and reviewed in batches, so a programme grows more slowly than the number of modules. Review and approval capacity on your side is often the real limit.<\/p><\/details>\n    <details><summary>Is my information stored anywhere?<\/summary><p>No. The estimate is worked out in your browser and nothing you choose is sent to us or stored. If you copy a link to your estimate, your choices are saved in that link only.<\/p><\/details>\n  <\/div>\n<\/section>\n<script type=\"application\/ld+json\">{\"@context\": \"https:\/\/schema.org\", \"@type\": \"FAQPage\", \"mainEntity\": [{\"@type\": \"Question\", \"name\": \"How accurate is this estimate?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"It is a planning range based on published development benchmarks and the way real projects run. Your own timeline depends on how quickly content is approved and how many people review it. For a firm timeline, talk to us and we will plan it with you.\"}}, {\"@type\": \"Question\", \"name\": \"Why does an Arabic version add so much time?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Arabic reads right to left, so layouts, menus, progress bars, icons and some images are mirrored, not just translated. Arabic fonts need checking on phones, mixed Arabic and English terms need care, and a native speaker should review every screen. Voiceover is recorded again in Arabic too.\"}}, {\"@type\": \"Question\", \"name\": \"Can we build the course in Arabic first?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Yes. Untick English and tick Arabic, and the estimator treats Arabic as the first language. Building natively in right to left from the start is usually quicker than converting an English course later.\"}}, {\"@type\": \"Question\", \"name\": \"What is the quickest way to shorten the timeline?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Give us approved content, agree who signs off before work starts, send one combined set of comments per review round, and decide on voiceover and video early. Those four steps save more time than anything else.\"}}, {\"@type\": \"Question\", \"name\": \"Do ten modules take ten times as long as one?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"No. Once the design is agreed, modules can be built in parallel and reviewed in batches, so a programme grows more slowly than the number of modules. Review and approval capacity on your side is often the real limit.\"}}, {\"@type\": \"Question\", \"name\": \"Is my information stored anywhere?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"No. The estimate is worked out in your browser and nothing you choose is sent to us or stored. If you copy a link to your estimate, your choices are saved in that link only.\"}}]}<\/script>\n<\/div>\n<script>\n(function () {\n  var root = document.getElementById('cxe-form');\n  var out = document.getElementById('cxe-out');\n  if (!root || !out || out.getAttribute('data-ready')) return;\n  out.setAttribute('data-ready', '1');\n  var R = {basic: [49, 79], inter: [127, 184], adv: [217, 490]};\n  var SRC = {ready: [0, 0.5], partial: [1, 2], scratch: [2, 4]};\n  var TIPS = {\n    prep: 'Agree and approve the content before the build starts.',\n    build: 'Keep rich interaction for the moments where decisions matter.',\n    media: 'Lock the script before recording and plan video early.',\n    lang: 'Plan every language from day one so layouts work in both directions.',\n    rev: 'Send one combined set of comments per round from a single owner.'\n  };\n  function q(s) { return root.querySelector(s); }\n  function radio(n, d) { var r = root.querySelector('input[name=\"' + n + '\"]:checked'); return r ? r.value : d; }\n  function num(id, lo, hi, d) { var v = parseInt(q('#' + id).value, 10); if (!isFinite(v)) return d; return Math.min(hi, Math.max(lo, v)); }\n  function wk(x) { var r = Math.round(x * 2) \/ 2; if (r < 0.5) return 'under a week'; return (r === 1 ? '1 week' : r + ' weeks'); }\n  function rng(a) { var lo = Math.round(a[0] * 2) \/ 2, hi = Math.round(a[1] * 2) \/ 2; if (hi <= 0) return 'none'; if (lo === hi) return wk(hi); return (lo < 0.5 ? 'under 1' : lo) + ' to ' + wk(hi); }\n  function add(a, b) { return [a[0] + b[0], a[1] + b[1]]; }\n  function calc() {\n    var mods = num('cxe-mods', 1, 30, 1), mins = parseInt(radio('cxe-mins', '20'), 10), lvl = radio('cxe-level', 'inter');\n    var rev = parseInt(radio('cxe-rev', '2'), 10), src = radio('cxe-src', 'partial');\n    var vo = q('#cxe-vo').checked, video = q('#cxe-video').checked, anim = q('#cxe-anim').checked;\n    var en = q('#cxe-en').checked, ar = q('#cxe-ar').checked, other = num('cxe-other', 0, 15, 0);\n    if (!en && !ar && other === 0) en = true;\n    var hours = mods * mins \/ 60;\n    var team = 1 + 0.5 * (Math.min(mods, 5) - 1);\n    var build = [hours * R[lvl][0] \/ (110 * team), hours * R[lvl][1] \/ (70 * team)];\n    var vol = 1 + 0.2 * (Math.min(mods, 10) - 1);\n    var s = 1 + 0.15 * (Math.min(mods, 10) - 1);\n    var prep = [1 + SRC[src][0] * s, 2 + SRC[src][1] * s];\n    var media = [0, 0];\n    if (vo) media = add(media, [0.5 * vol, 1 * vol]);\n    if (video) media = add(media, [1 * vol, 2 * vol]);\n    if (anim) media = add(media, [1 * vol, 2 * vol]);\n    var lang = [0, 0], extra = 0, first = en ? 'English' : (ar ? 'Arabic' : 'your first language');\n    if (ar && en) { lang = add(lang, [Math.max(1, 0.35 * build[0]) + 0.5, Math.max(2, 0.6 * build[1]) + 1]); extra++; }\n    if (ar && !en) lang = add(lang, [0.1 * build[0] + 0.5, 0.2 * build[1] + 1]);\n    var others = (en || ar) ? other : other - 1;\n    if (others > 0) {\n      lang = add(lang, [Math.max(0.75, 0.25 * build[0]) + 0.5, Math.max(1.5, 0.45 * build[1]) + 1]);\n      if (others > 1) lang = add(lang, [0.3 * (others - 1), 0.6 * (others - 1)]);\n      extra += others;\n    }\n    if (vo && extra) media = add(media, [0.3 * extra, 0.6 * extra]);\n    var rf = 1 + 0.1 * (Math.min(mods, 10) - 1);\n    var rv = [rev * rf, rev * 1.5 * rf];\n    var phases = [\n      {k: 'prep', name: 'Preparation and design', v: prep},\n      {k: 'build', name: 'Build', v: build},\n      {k: 'media', name: 'Media', v: media},\n      {k: 'lang', name: (ar ? 'Arabic and language versions' : 'Language versions'), v: lang},\n      {k: 'rev', name: 'Reviews and sign-off', v: rv}\n    ];\n    var tot = [0, 0]; phases.forEach(function (ph) { tot = add(tot, ph.v); });\n    var lo = Math.max(2, Math.round(tot[0])), hi = Math.max(lo + 1, Math.round(tot[1]));\n    return {mods: mods, mins: mins, lvl: lvl, rev: rev, src: src, vo: vo, video: video, anim: anim, en: en, ar: ar, other: other, extra: extra, first: first, phases: phases, lo: lo, hi: hi};\n  }\n  function render() {\n    var r = calc(), max = 0;\n    r.phases.forEach(function (ph) { if (ph.v[1] > max) max = ph.v[1]; });\n    var lvlName = {basic: 'mostly read and watch', inter: 'interactive', adv: 'scenario based'}[r.lvl];\n    var desc = (r.mods === 1 ? 'One ' + r.mins + ' minute module' : r.mods + ' modules of ' + r.mins + ' minutes') + ', ' + lvlName + ', in ' + (1 + r.extra) + (r.extra ? ' languages' : ' language') + ', with ' + r.rev + (r.rev === 1 ? ' review round.' : ' review rounds.');\n    var h = '<span class=\"cxe-k\">Estimated timeline, kick-off to launch<\/span><p class=\"cxe-big\">' + r.lo + ' to ' + r.hi + ' weeks<\/p><p>' + desc + '<\/p><ul class=\"cxe-bars\">';\n    r.phases.forEach(function (ph) {\n      if (ph.v[1] <= 0) return;\n      h += '<li><div class=\"row\"><span>' + ph.name + '<\/span><b>' + rng(ph.v) + '<\/b><\/div><div class=\"cxe-bar\"><i style=\"width:' + Math.max(4, Math.round(ph.v[1] \/ max * 100)) + '%\"><\/i><\/div><\/li>';\n    });\n    h += '<\/ul>';\n    var top = r.phases.filter(function (ph) { return ph.v[1] > 0; }).sort(function (a, b) { return b.v[1] - a.v[1]; }).slice(0, 2);\n    h += '<div class=\"cxe-drivers\"><h3>What drives your timeline<\/h3><ul>';\n    top.forEach(function (ph) { h += '<li><b>' + ph.name + ':<\/b> ' + TIPS[ph.k] + '<\/li>'; });\n    if (r.ar && r.en) h += '<li><b>Arabic:<\/b> mirrored layouts, Arabic fonts and a native speaker review are included in the language step.<\/li>';\n    if (r.ar && !r.en) h += '<li><b>Arabic first:<\/b> building right to left from the start adds a little design time but avoids a later conversion.<\/li>';\n    h += '<\/ul><\/div>';\n    h += '<p class=\"cxe-legal\">A planning guide based on published development benchmarks, not a quote or a commitment. Real timelines depend on content approval and reviewer availability.<\/p>';\n    h += '<div class=\"cxe-acts\"><button type=\"button\" data-act=\"copy\">Copy a link to this estimate<\/button><button type=\"button\" data-act=\"print\">Print or save as PDF<\/button><button type=\"button\" data-act=\"reset\">Start again<\/button><\/div>';\n    out.innerHTML = h;\n    var p = [r.mods, r.mins, r.lvl, r.rev, r.src, r.vo ? 1 : 0, r.video ? 1 : 0, r.anim ? 1 : 0, r.en ? 1 : 0, r.ar ? 1 : 0, r.other];\n    out.setAttribute('data-link', location.origin + location.pathname + '#e=' + p.join('.'));\n  }\n  function setRadio(n, v) { var el = root.querySelector('input[name=\"' + n + '\"][value=\"' + String(v).replace(\/[^a-z0-9]\/g, '') + '\"]'); if (el) el.checked = true; }\n  function reset() {\n    q('#cxe-mods').value = 1; q('#cxe-other').value = 0; setRadio('cxe-mins', 20); setRadio('cxe-level', 'inter'); setRadio('cxe-rev', 2); setRadio('cxe-src', 'partial');\n    q('#cxe-vo').checked = false; q('#cxe-video').checked = false; q('#cxe-anim').checked = false; q('#cxe-en').checked = true; q('#cxe-ar').checked = false;\n  }\n  root.addEventListener('input', render);\n  root.addEventListener('change', render);\n  out.addEventListener('click', function (e) {\n    var b = e.target.closest ? e.target.closest('button') : null; if (!b) return;\n    var act = b.getAttribute('data-act');\n    if (act === 'print') window.print();\n    if (act === 'reset') { reset(); try { history.replaceState(null, '', location.pathname); } catch (x) {} render(); }\n    if (act === 'copy') {\n      var l = out.getAttribute('data-link'); try { history.replaceState(null, '', l); } catch (x) {}\n      var done = function () { b.textContent = 'Link copied'; setTimeout(function () { b.textContent = 'Copy a link to this estimate'; }, 2500); };\n      if (navigator.clipboard) navigator.clipboard.writeText(l).then(done, function () { window.prompt('Copy this link', l); }); else window.prompt('Copy this link', l);\n    }\n  });\n  var m = \/(?:^|[#&])e=([a-z0-9.]+)\/.exec(location.hash);\n  if (m) {\n    var v = m[1].split('.');\n    if (v.length === 11) {\n      q('#cxe-mods').value = parseInt(v[0], 10) || 1; setRadio('cxe-mins', v[1]); setRadio('cxe-level', v[2]); setRadio('cxe-rev', v[3]); setRadio('cxe-src', v[4]);\n      q('#cxe-vo').checked = v[5] === '1'; q('#cxe-video').checked = v[6] === '1'; q('#cxe-anim').checked = v[7] === '1'; q('#cxe-en').checked = v[8] === '1'; q('#cxe-ar').checked = v[9] === '1'; q('#cxe-other').value = parseInt(v[10], 10) || 0;\n    }\n  }\n  render();\n})();\n<\/script>\n\n<section class=\"capy-finale-section\" style=\"padding-top:0!important;padding-bottom:0!important\"><div class=\"capy-footer-master\">\n        <div class=\"capy-footer-grid\">\n          \n          <div class=\"capy-footer-brand capy-reveal-up capy-delay-1\">\n            <img decoding=\"async\" src=\"https:\/\/capytech.com\/wp-content\/uploads\/2026\/03\/capytech-white-logo.png\" alt=\"Capytech\" class=\"capy-footer-logo\">\n            <p>Official <strong>Articulate 360 partner<\/strong> in the Middle East.<br><br>Capytech is a Dubai-registered e-learning provider with offices in Dubai and Abu Dhabi, building training for organisations across the GCC and around the world, in any language.<\/p>\n            <div class=\"capy-footer-contact-list\">\n              <span><svg fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\"><path d=\"M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z\"><\/path><\/svg> <a href=\"mailto:contact@capytech.com\" style=\"color:inherit;text-decoration:none;\">contact@capytech.com<\/a><\/span>\n              <span><svg fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\"><path d=\"M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21l-2.257 1.13a11.042 11.042 0 005.516 5.516l1.13-2.257a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z\"><\/path><\/svg> <a href=\"tel:+971585426893\" style=\"color:inherit;text-decoration:none;\">+971 58 542 6893 (UAE)<\/a><\/span>\n              <span><svg fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\"><path d=\"M17.657 16.657L13.414 20.9a1.998 1.998 0 01-2.827 0l-4.244-4.243a8 8 0 1111.314 0z\"><\/path><path d=\"M15 11a3 3 0 11-6 0 3 3 0 016 0z\"><\/path><\/svg> PO Box 392823, Dubai, UAE<\/span>\n            <\/div>\n          <\/div>\n\n          <div class=\"capy-footer-nav capy-reveal-up capy-delay-2\">\n            <h4>Solutions<\/h4>\n             <div class=\"capy-footer-links\">\n                <a href=\"https:\/\/capytech.com\/\">Home<\/a>\n                <a href=\"https:\/\/capytech.com\/en\/custom-e-learning-development\/\">Custom E-learning<\/a>\n                <a href=\"https:\/\/capytech.com\/en\/ai-powered-lms\/\">LMS<\/a>\n                <a href=\"https:\/\/capytech.com\/en\/custom-e-learning-development\/#fasttrack\">FastTrack<\/a>\n                <a href=\"https:\/\/capytech.com\/en\/articulate-360-partner\/\">Articulate 360<\/a>\n                <a href=\"https:\/\/capytech.com\/en\/metaverse\/\">Metaverse<\/a>\n                <a href=\"https:\/\/capytech.com\/en\/accredited-courses\/\">Online Courses<\/a>\n                <a href=\"https:\/\/capytech.com\/en\/blog\/\">Blog<\/a>\n            <\/div>\n          <\/div>\n\n          <div class=\"capy-footer-form-col capy-reveal-up capy-delay-3\">\n              <h4>Send us a message<\/h4>\n              <div class=\"capy-footer-form\">\n                \n<div class=\"wpcf7 no-js\" id=\"wpcf7-f64136-o1\" lang=\"en-US\" dir=\"ltr\" data-wpcf7-id=\"64136\">\n<div class=\"screen-reader-response\"><p role=\"status\" aria-live=\"polite\" aria-atomic=\"true\"><\/p> <ul><\/ul><\/div>\n<form action=\"\/en\/wp-json\/wp\/v2\/pages\/65645#wpcf7-f64136-o1\" method=\"post\" class=\"wpcf7-form init\" aria-label=\"Contact form\" novalidate=\"novalidate\" data-status=\"init\">\n<div style=\"display: none;\">\n<input type=\"hidden\" name=\"_wpcf7\" value=\"64136\" \/>\n<input type=\"hidden\" name=\"_wpcf7_version\" value=\"6.0.2\" \/>\n<input type=\"hidden\" name=\"_wpcf7_locale\" value=\"en_US\" \/>\n<input type=\"hidden\" name=\"_wpcf7_unit_tag\" value=\"wpcf7-f64136-o1\" \/>\n<input type=\"hidden\" name=\"_wpcf7_container_post\" value=\"0\" \/>\n<input type=\"hidden\" name=\"_wpcf7_posted_data_hash\" value=\"\" \/>\n<input type=\"hidden\" name=\"_wpcf7_recaptcha_response\" value=\"\" \/>\n<\/div>\n<p><span class=\"wpcf7-form-control-wrap\" data-name=\"your-name\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Your Name\" value=\"\" type=\"text\" name=\"your-name\" \/><\/span>\n<\/p>\n<p><span class=\"wpcf7-form-control-wrap\" data-name=\"your-email\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-email wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-email\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Your Email\" value=\"\" type=\"email\" name=\"your-email\" \/><\/span>\n<\/p>\n<div style=\"display: none;\">\n\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"utm_source\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"utm_source\" \/><\/span><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"utm_medium\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"utm_medium\" \/><\/span><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"utm_campaign\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"utm_campaign\" \/><\/span><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"utm_term\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"utm_term\" \/><\/span><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"utm_content\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"utm_content\" \/><\/span>\n\t<\/p>\n<\/div>\n<p><span class=\"wpcf7-form-control-wrap\" data-name=\"your-message\"><textarea cols=\"40\" rows=\"4\" maxlength=\"2000\" class=\"wpcf7-form-control wpcf7-textarea wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"How can we help you today?\" name=\"your-message\"><\/textarea><\/span>\n<\/p>\n<p><input class=\"wpcf7-form-control wpcf7-submit has-spinner\" type=\"submit\" value=\"Send Message\" \/>\n<\/p><div class=\"wpcf7-response-output\" aria-hidden=\"true\"><\/div>\n<\/form>\n<\/div>\n\n              <\/div>\n          <\/div>\n\n        <\/div>\n\n        <div class=\"capy-footer-bottom\">\n          <div class=\"capy-copyright\">\u00a9 2026 Capytech. All rights reserved.<\/div>\n          <div class=\"capy-legal-links\" style=\"justify-content:center;margin-top:0.75rem;\">\n            <a href=\"\/privacy-policy\">Privacy Policy<\/a>\n          <\/div>\n        <\/div>\n      <\/div><\/section>\n\n  <div class=\"capy-modal-overlay\" id=\"capyDemoModal\">\n    <div class=\"capy-modal-box capy-modal-split\">\n      \n      <div class=\"capy-modal-visual\">\n        <div class=\"capy-modal-visual-text\">\n          <h4>Ready to empower your team?<\/h4>\n          <p>Get in touch to secure your official Articulate 360 licences or to book a private training session.<\/p>\n        <\/div>\n      <\/div>\n\n      <div class=\"capy-modal-content\">\n        <button class=\"capy-modal-close\" id=\"capyModalClose\">\n          <svg width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"><\/line><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"><\/line><\/svg>\n        <\/button>\n        \n        <div class=\"capy-modal-header\">\n          <div class=\"capy-modal-icon\">\n            <svg width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\"><path d=\"M12 6V4m0 2a2 2 0 100 4m0-4a2 2 0 110 4m-6 8a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4m6 6v10m6-2a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4\"><\/path><\/svg>\n          <\/div>\n          <h3>Contact Us<\/h3>\n          <p>Fill out the form below and our regional team will be in touch shortly.<\/p>\n        <\/div>\n\n        <div class=\"capy-modal-form-wrapper\">\n          \n<div class=\"wpcf7 no-js\" id=\"wpcf7-f64137-o2\" lang=\"en-US\" dir=\"ltr\" data-wpcf7-id=\"64137\">\n<div class=\"screen-reader-response\"><p role=\"status\" aria-live=\"polite\" aria-atomic=\"true\"><\/p> <ul><\/ul><\/div>\n<form action=\"\/en\/wp-json\/wp\/v2\/pages\/65645#wpcf7-f64137-o2\" method=\"post\" class=\"wpcf7-form init\" aria-label=\"Contact form\" novalidate=\"novalidate\" data-status=\"init\">\n<div style=\"display: none;\">\n<input type=\"hidden\" name=\"_wpcf7\" value=\"64137\" \/>\n<input type=\"hidden\" name=\"_wpcf7_version\" value=\"6.0.2\" \/>\n<input type=\"hidden\" name=\"_wpcf7_locale\" value=\"en_US\" \/>\n<input type=\"hidden\" name=\"_wpcf7_unit_tag\" value=\"wpcf7-f64137-o2\" \/>\n<input type=\"hidden\" name=\"_wpcf7_container_post\" value=\"0\" \/>\n<input type=\"hidden\" name=\"_wpcf7_posted_data_hash\" value=\"\" \/>\n<input type=\"hidden\" name=\"_wpcf7_recaptcha_response\" value=\"\" \/>\n<\/div>\n<p><span class=\"wpcf7-form-control-wrap\" data-name=\"your-name\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Full Name\" value=\"\" type=\"text\" name=\"your-name\" \/><\/span>\n<\/p>\n<p><span class=\"wpcf7-form-control-wrap\" data-name=\"your-email\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-email wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-email\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Work Email\" value=\"\" type=\"email\" name=\"your-email\" \/><\/span>\n<\/p>\n<p><span class=\"wpcf7-form-control-wrap\" data-name=\"your-company\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Company Name\" value=\"\" type=\"text\" name=\"your-company\" \/><\/span>\n<\/p>\n<div style=\"display: none;\">\n\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"utm_source\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"utm_source\" \/><\/span><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"utm_medium\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"utm_medium\" \/><\/span><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"utm_campaign\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"utm_campaign\" \/><\/span><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"utm_term\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"utm_term\" \/><\/span><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"utm_content\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"utm_content\" \/><\/span>\n\t<\/p>\n<\/div>\n<p><span class=\"wpcf7-form-control-wrap\" data-name=\"your-message\"><textarea cols=\"40\" rows=\"4\" maxlength=\"2000\" class=\"wpcf7-form-control wpcf7-textarea wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Tell us what you&#039;d like to see in the demo...\" name=\"your-message\"><\/textarea><\/span>\n<\/p>\n<p><input class=\"wpcf7-form-control wpcf7-submit has-spinner\" type=\"submit\" value=\"Book My Free Demo\" \/>\n<\/p><div class=\"wpcf7-response-output\" aria-hidden=\"true\"><\/div>\n<\/form>\n<\/div>\n\n        <\/div>\n      <\/div>\n      \n    <\/div>\n  <\/div>\n\n<\/div>\n\n<script>\n  (function() {\n    \/\/ 0. SMART SCROLL MANAGEMENT\n    if ('scrollRestoration' in history) {\n      history.scrollRestoration = 'manual';\n    }\n\n    if (window.location.hash) {\n      setTimeout(() => {\n        const targetElement = document.querySelector(window.location.hash);\n        if (targetElement) {\n          targetElement.scrollIntoView({ behavior: 'smooth', block: 'start' });\n        }\n      }, 150);\n    } else {\n      window.scrollTo(0, 0);\n    }\n\n    document.addEventListener(\"DOMContentLoaded\", function() {\n      \n      \/\/ 1. SMART SMOOTH SCROLLING\n      document.querySelectorAll('a[href^=\"#\"]').forEach(anchor => {\n        anchor.addEventListener('click', function (e) {\n          const targetId = this.getAttribute('href');\n          \/\/ Ignore modal triggers\n          if (targetId === '#' || targetId === '#demo' || targetId === '#modal' || targetId === '#capyDemoModal') return; \n          \n          const targetElement = document.querySelector(targetId);\n          if (targetElement) {\n            e.preventDefault(); \n            targetElement.scrollIntoView({ behavior: 'smooth', block: 'start' });\n          }\n        });\n      });\n\n      \/\/ 2. REVEAL ANIMATION OBSERVER\n      const revealOptions = { root: null, rootMargin: '0px 0px -50px 0px', threshold: 0.1 };\n      const revealObserver = new IntersectionObserver((entries) => {\n        entries.forEach(entry => {\n          if (entry.isIntersecting) { entry.target.classList.add('capy-active'); } \n          else if (entry.boundingClientRect.top > 0) { entry.target.classList.remove('capy-active'); }\n        });\n      }, revealOptions);\n      document.querySelectorAll('[class*=\"capy-reveal\"]').forEach(el => revealObserver.observe(el));\n\n      \/\/ 3. MODAL LOGIC (one delegated listener: works for the header, late-loaded buttons and every CTA)\n      const modal = document.getElementById('capyDemoModal');\n      if (modal) {\n        const openModal  = () => { modal.classList.add('capy-modal-active'); document.body.style.overflow = 'hidden'; };\n        const closeModal = () => { modal.classList.remove('capy-modal-active'); document.body.style.overflow = ''; };\n\n        document.addEventListener('click', (e) => {\n          if (e.target.closest('a[href$=\"#modal\"], a[href$=\"#capyDemoModal\"], a[href$=\"#demo\"]')) { e.preventDefault(); openModal(); return; }\n          if (e.target.closest('#capyModalClose') || e.target === modal) closeModal();\n        });\n        document.addEventListener('keydown', (e) => { if (e.key === 'Escape') closeModal(); });\n      }\n\n    });\n  })();\n<\/script>\n\n<\/body>\n<\/html>\n\n<!-- Migrated from Elementor Pro Custom CSS (2026-10-12) -->\n<style id=\"capy-migrated-pro-css\">\n\/* Page Settings > Custom CSS *\/\n.x-navbar-inner {\n    background-color: #000!important;\n}\n#menu-main-menu li {\n    background-color: #000!important;\n}\n\n*[lang=\"ar\"] \n    .wpcf7 p {\n    margin-bottom: 0.32825em;\n    direction: rtl;\n}\n\n*[lang=\"ar\"] \n.wpcf7-form-control.wpcf7-submit {\n    background-color: #f3a739;\n    color: #fff;\n    border: 1px solid #f3a739;\n    font-weight: 600;\n    font-family: 'Mulish Regular';\n    float: right;\n}\n\n\n*[lang=\"ar\"]\n.elementor-accordion .elementor-tab-title .elementor-accordion-icon.elementor-accordion-icon-left {\n    float: right;\n    text-align: right;\n}\n\n[lang=\"ar\"] .elementor-accordion-item {\n   text-align: right!important;\n}\n<\/style>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Free planning tool E-learning build time estimator Planning a launch date for a new course? Tell us how long it is, how interactive it should be, the media and the languages you need, and see a realistic timeline in weeks, plus the factors that stretch it. Arabic versions and right to left layouts are counted as a step of their &#8230; <\/p>\n<div><a href=\"https:\/\/capytech.com\/en\/build-time-estimator\/\" class=\"more-link\">Read More<\/a><\/div>\n","protected":false},"author":9,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"template-blank-5.php","meta":{"footnotes":""},"class_list":["post-65645","page","type-page","status-publish","hentry","no-post-thumbnail"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.1 (Yoast SEO v24.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>E-Learning Build Time Estimator | Capytech<\/title>\n<meta name=\"description\" content=\"Estimate how many weeks your e-learning course will take, including Arabic and other languages, interactivity, media and review rounds. Free, no sign-up.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/capytech.com\/en\/build-time-estimator\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"E-Learning Build Time Estimator | Capytech\" \/>\n<meta property=\"og:description\" content=\"Estimate how many weeks your e-learning course will take, including Arabic and other languages, interactivity, media and review rounds. Free, no sign-up.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/capytech.com\/en\/build-time-estimator\/\" \/>\n<meta property=\"og:site_name\" content=\"Capytech\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/capytech\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-27T15:37:15+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/capytech.com\/wp-content\/uploads\/2026\/03\/capytech-white-logo.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/capytech.com\/build-time-estimator\/\",\"url\":\"https:\/\/capytech.com\/build-time-estimator\/\",\"name\":\"E-Learning Build Time Estimator | Capytech\",\"isPartOf\":{\"@id\":\"https:\/\/capytech.com\/en\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/capytech.com\/build-time-estimator\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/capytech.com\/build-time-estimator\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/capytech.com\/wp-content\/uploads\/2026\/03\/capytech-white-logo.png\",\"datePublished\":\"2026-10-27T10:47:31+00:00\",\"dateModified\":\"2026-10-27T15:37:15+00:00\",\"description\":\"Estimate how many weeks your e-learning course will take, including Arabic and other languages, interactivity, media and review rounds. Free, no sign-up.\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/capytech.com\/build-time-estimator\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/capytech.com\/build-time-estimator\/#primaryimage\",\"url\":\"https:\/\/capytech.com\/wp-content\/uploads\/2026\/03\/capytech-white-logo.png\",\"contentUrl\":\"https:\/\/capytech.com\/wp-content\/uploads\/2026\/03\/capytech-white-logo.png\"},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/capytech.com\/en\/#website\",\"url\":\"https:\/\/capytech.com\/en\/\",\"name\":\"Capytech\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/capytech.com\/en\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/capytech.com\/en\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/capytech.com\/en\/#organization\",\"name\":\"Capytech\",\"url\":\"https:\/\/capytech.com\/en\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/capytech.com\/en\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/capytech.com\/wp-content\/uploads\/2021\/10\/CapytechLogo_V2_2020.png\",\"contentUrl\":\"https:\/\/capytech.com\/wp-content\/uploads\/2021\/10\/CapytechLogo_V2_2020.png\",\"width\":2443,\"height\":629,\"caption\":\"Capytech\"},\"image\":{\"@id\":\"https:\/\/capytech.com\/en\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/capytech\"]}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"E-Learning Build Time Estimator | Capytech","description":"Estimate how many weeks your e-learning course will take, including Arabic and other languages, interactivity, media and review rounds. Free, no sign-up.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/capytech.com\/en\/build-time-estimator\/","og_locale":"en_US","og_type":"article","og_title":"E-Learning Build Time Estimator | Capytech","og_description":"Estimate how many weeks your e-learning course will take, including Arabic and other languages, interactivity, media and review rounds. Free, no sign-up.","og_url":"https:\/\/capytech.com\/en\/build-time-estimator\/","og_site_name":"Capytech","article_publisher":"https:\/\/www.facebook.com\/capytech","article_modified_time":"2026-10-27T15:37:15+00:00","og_image":[{"url":"https:\/\/capytech.com\/wp-content\/uploads\/2026\/03\/capytech-white-logo.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/capytech.com\/build-time-estimator\/","url":"https:\/\/capytech.com\/build-time-estimator\/","name":"E-Learning Build Time Estimator | Capytech","isPartOf":{"@id":"https:\/\/capytech.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/capytech.com\/build-time-estimator\/#primaryimage"},"image":{"@id":"https:\/\/capytech.com\/build-time-estimator\/#primaryimage"},"thumbnailUrl":"https:\/\/capytech.com\/wp-content\/uploads\/2026\/03\/capytech-white-logo.png","datePublished":"2026-10-27T10:47:31+00:00","dateModified":"2026-10-27T15:37:15+00:00","description":"Estimate how many weeks your e-learning course will take, including Arabic and other languages, interactivity, media and review rounds. Free, no sign-up.","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/capytech.com\/build-time-estimator\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/capytech.com\/build-time-estimator\/#primaryimage","url":"https:\/\/capytech.com\/wp-content\/uploads\/2026\/03\/capytech-white-logo.png","contentUrl":"https:\/\/capytech.com\/wp-content\/uploads\/2026\/03\/capytech-white-logo.png"},{"@type":"WebSite","@id":"https:\/\/capytech.com\/en\/#website","url":"https:\/\/capytech.com\/en\/","name":"Capytech","description":"","publisher":{"@id":"https:\/\/capytech.com\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/capytech.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/capytech.com\/en\/#organization","name":"Capytech","url":"https:\/\/capytech.com\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/capytech.com\/en\/#\/schema\/logo\/image\/","url":"https:\/\/capytech.com\/wp-content\/uploads\/2021\/10\/CapytechLogo_V2_2020.png","contentUrl":"https:\/\/capytech.com\/wp-content\/uploads\/2021\/10\/CapytechLogo_V2_2020.png","width":2443,"height":629,"caption":"Capytech"},"image":{"@id":"https:\/\/capytech.com\/en\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/capytech"]}]}},"_links":{"self":[{"href":"https:\/\/capytech.com\/en\/wp-json\/wp\/v2\/pages\/65645","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/capytech.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/capytech.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/capytech.com\/en\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/capytech.com\/en\/wp-json\/wp\/v2\/comments?post=65645"}],"version-history":[{"count":6,"href":"https:\/\/capytech.com\/en\/wp-json\/wp\/v2\/pages\/65645\/revisions"}],"predecessor-version":[{"id":65747,"href":"https:\/\/capytech.com\/en\/wp-json\/wp\/v2\/pages\/65645\/revisions\/65747"}],"wp:attachment":[{"href":"https:\/\/capytech.com\/en\/wp-json\/wp\/v2\/media?parent=65645"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}