{"id":1691,"date":"2026-10-12T05:26:32","date_gmt":"2026-10-12T05:26:32","guid":{"rendered":"https:\/\/web.annulartechnologies.com\/staging\/execution-as-a-service\/"},"modified":"2026-10-20T12:31:16","modified_gmt":"2026-10-20T12:31:16","slug":"execution-as-a-service","status":"publish","type":"page","link":"https:\/\/web.annulartechnologies.com\/staging\/execution-as-a-service\/","title":{"rendered":"Execution as a Service"},"content":{"rendered":"<p><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-1 fusion-flex-container hundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-padding-top:0px;--awb-padding-right:0px;--awb-padding-bottom:0px;--awb-padding-left:0px;--awb-margin-top:0px;--awb-margin-bottom:0px;--awb-background-color:#ffffff;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-center fusion-flex-justify-content-center fusion-flex-content-wrap\" style=\"width:104% !important;max-width:104% !important;margin-left: calc(-4% \/ 2 );margin-right: calc(-4% \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_1 1_1 fusion-flex-column fusion-flex-align-self-flex-start\" style=\"--awb-padding-top:0px;--awb-padding-right:0px;--awb-padding-bottom:0px;--awb-padding-left:0px;--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:0px;--awb-spacing-left-large:1.92%;--awb-width-medium:100%;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-flex-justify-content-flex-start fusion-content-layout-column\"><style>\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');\n\n\/* ==========================================================================\n   DELIVERY TEAM ASSEMBLY STUDIO - EXECUTION AS A SERVICE\n   Annular Technologies - Scoped Page Styles\n   ========================================================================== *\/\n\n.annular-eaas-page-wrapper {\n  font-family: 'Plus Jakarta Sans', 'Inter', system-ui, -apple-system, sans-serif;\n  color: #334155;\n  background-color: #ffffff;\n  line-height: 1.65;\n  -webkit-font-smoothing: antialiased;\n  box-sizing: border-box;\n}\n\n.annular-eaas-page-wrapper *,\n.annular-eaas-page-wrapper *::before,\n.annular-eaas-page-wrapper *::after {\n  box-sizing: border-box;\n}\n\n.annular-eaas-container {\n  max-width: 1240px;\n  margin: 0 auto;\n  padding: 0 24px;\n}\n\n\n\n.annular-eaas-section-header {\n  text-align: center;\n  max-width: 840px;\n  margin: 0 auto 52px;\n}\n\n.annular-eaas-section-header h2 {\n  font-size: 38px;\n  font-weight: 800;\n  color: #0f172a;\n  line-height: 1.22;\n  letter-spacing: -0.025em;\n  margin: 0 0 16px;\n}\n\n.annular-eaas-section-header p {\n  font-size: 16.5px;\n  color: #64748b;\n  margin: 0;\n  line-height: 1.65;\n}\n\n\/* Primary & Secondary Buttons *\/\n.annular-eaas-btn-group {\n  display: flex;\n  align-items: center;\n  flex-wrap: wrap;\n  gap: 16px;\n  margin-top: 32px;\n}\n\n.annular-eaas-btn-primary {\n  display: inline-flex;\n  align-items: center;\n  gap: 10px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 700;\n  color: #ffffff !important;\n  background: #0284c7 !important;\n  border: 1px solid #0369a1 !important;\n  border-radius: 10px;\n  text-decoration: none !important;\n  transition: all 0.2s ease;\n  box-shadow: 0 4px 14px -2px rgba(37, 99, 235, 0.35);\n}\n\n.annular-eaas-btn-primary:hover {\n  background: #0369a1 !important;\n  transform: translateY(-2px);\n  box-shadow: 0 6px 20px -2px rgba(37, 99, 235, 0.45);\n}\n\n.annular-eaas-btn-secondary {\n  display: inline-flex;\n  align-items: center;\n  gap: 10px;\n  padding: 14px 28px;\n  font-size: 15px;\n  font-weight: 700;\n  color: #0f172a !important;\n  background: #ffffff !important;\n  border: 1.5px solid #cbd5e1 !important;\n  border-radius: 10px;\n  text-decoration: none !important;\n  transition: all 0.2s ease;\n}\n\n.annular-eaas-btn-secondary:hover {\n  background: #f8fafc !important;\n  border-color: #cbd5e1 !important;\n  color: #2563eb !important;\n  transform: translateY(-2px);\n}\n\n\/* ==========================================================================\n   SECTION 1: HERO - BUILD YOUR DELIVERY TEAM\n   ========================================================================== *\/\n.annular-eaas-hero-section {\n  padding: 95px 0;\n  background: linear-gradient(180deg, #f0f7ff 0%, #ffffff 100%);\n  border-bottom: 1px solid #f1f5f9;\n  position: relative;\n  overflow: hidden;\n}\n\n.annular-eaas-hero-grid {\n  display: grid;\n  grid-template-columns: 1.05fr 0.95fr;\n  gap: 56px;\n  align-items: center;\n}\n\n.annular-eaas-hero-content h1 {\n  font-size: 44px;\n  font-weight: 800;\n  color: #0f172a;\n  line-height: 1.15;\n  letter-spacing: -0.03em;\n  margin: 0 0 20px;\n}\n\n.annular-eaas-hero-content p {\n  font-size: 17px;\n  line-height: 1.65;\n  color: #475569;\n  margin: 0;\n  max-width: 580px;\n}\n\n.annular-eaas-hero-indicators {\n  display: flex;\n  align-items: center;\n  flex-wrap: wrap;\n  gap: 14px;\n  margin-top: 36px;\n  padding-top: 24px;\n  border-top: 1px solid #e2e8f0;\n}\n\n.annular-eaas-hero-indicator-item {\n  display: flex;\n  align-items: center;\n  gap: 8px;\n  font-size: 13px;\n  font-weight: 600;\n  color: #334155;\n  background: #ffffff;\n  padding: 6px 14px;\n  border-radius: 8px;\n  border: 1.5px solid #e2e8f0;\n  box-shadow: 0 2px 6px rgba(15, 23, 42, 0.04);\n}\n\n.annular-eaas-hero-indicator-dot {\n  width: 8px;\n  height: 8px;\n  border-radius: 50%;\n  background: #2563eb;\n}\n\n.annular-eaas-hero-visual-wrapper {\n  position: relative;\n}\n\n.annular-eaas-hero-image-frame {\n  position: relative;\n  border-radius: 20px;\n  overflow: hidden;\n  box-shadow: 0 24px 50px -12px rgba(15, 23, 42, 0.15), 0 0 0 1px rgba(15, 23, 42, 0.06);\n  border: 1.5px solid #e2e8f0;\n  background: #ffffff;\n}\n\n.annular-eaas-hero-image-frame img {\n  width: 100%;\n  height: auto;\n  display: block;\n  object-fit: cover;\n}\n\n.annular-eaas-floating-chip-top {\n  position: absolute;\n  top: 20px;\n  right: -15px;\n  background: #ffffff;\n  padding: 10px 18px;\n  border-radius: 12px;\n  box-shadow: 0 12px 28px -6px rgba(15, 23, 42, 0.16), 0 0 0 1px rgba(15, 23, 42, 0.06);\n  display: flex;\n  align-items: center;\n  gap: 10px;\n  z-index: 2;\n  border: 1px solid #f1f5f9;\n}\n\n.annular-eaas-chip-dot {\n  width: 10px;\n  height: 10px;\n  border-radius: 50%;\n  background: #2563eb;\n  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.25);\n}\n\n.annular-eaas-chip-text {\n  font-size: 12.5px;\n  font-weight: 700;\n  color: #0f172a;\n}\n\n.annular-eaas-chip-sub {\n  font-size: 11px;\n  color: #64748b;\n}\n\n.annular-eaas-floating-chip-bottom {\n  position: absolute;\n  bottom: 24px;\n  left: -20px;\n  background: #ffffff;\n  padding: 12px 20px;\n  border-radius: 14px;\n  box-shadow: 0 14px 30px -8px rgba(15, 23, 42, 0.18), 0 0 0 1px rgba(15, 23, 42, 0.06);\n  display: flex;\n  align-items: center;\n  gap: 12px;\n  z-index: 2;\n  border: 1px solid #f1f5f9;\n}\n\n.annular-eaas-chip-icon-box {\n  width: 36px;\n  height: 36px;\n  border-radius: 10px;\n  background: #eff6ff;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: #2563eb;\n  font-size: 18px;\n}\n\n\/* ==========================================================================\n   SECTION 2: OVERVIEW - CAPACITY THAT FITS THE WORK\n   ========================================================================== *\/\n.annular-eaas-overview-section {\n  padding: 95px 0;\n  background: #ffffff;\n  border-bottom: 1px solid #f1f5f9;\n}\n\n.annular-eaas-overview-grid {\n  display: grid;\n  grid-template-columns: 1fr 1fr;\n  gap: 56px;\n  align-items: center;\n  margin-bottom: 48px;\n}\n\n.annular-eaas-overview-grid h2 {\n  font-size: 38px;\n  font-weight: 800;\n  color: #0f172a;\n  line-height: 1.22;\n  letter-spacing: -0.025em;\n  margin: 0;\n}\n\n.annular-eaas-overview-grid p {\n  font-size: 16.5px;\n  color: #475569;\n  line-height: 1.7;\n  margin: 0;\n}\n\n.annular-eaas-overview-triad {\n  display: grid;\n  grid-template-columns: repeat(3, 1fr);\n  gap: 24px;\n}\n\n.annular-eaas-triad-card {\n  background: #f8fafc;\n  border: 1.5px solid #e2e8f0;\n  border-radius: 18px;\n  padding: 26px 22px;\n  display: flex;\n  align-items: center;\n  gap: 16px;\n  transition: all 0.25s ease;\n}\n\n.annular-eaas-triad-card:hover {\n  background: #ffffff;\n  border-color: #3b82f6;\n  transform: translateY(-3px);\n  box-shadow: 0 12px 24px -6px rgba(37, 99, 235, 0.12);\n}\n\n.annular-eaas-triad-icon {\n  width: 44px;\n  height: 44px;\n  border-radius: 12px;\n  background: #eff6ff;\n  border: 1px solid #bfdbfe;\n  color: #2563eb;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  flex-shrink: 0;\n}\n\n.annular-eaas-triad-title {\n  font-size: 15.5px;\n  font-weight: 750;\n  color: #0f172a;\n  line-height: 1.35;\n}\n\n\/* ==========================================================================\n   SECTION 3: CAPABILITIES - MODULAR CAPABILITY SELECTOR\n   ========================================================================== *\/\n.annular-eaas-capabilities-section {\n  padding: 95px 0;\n  background: #f8fafc;\n  border-bottom: 1px solid #f1f5f9;\n}\n\n.annular-eaas-selector-box {\n  background: #ffffff;\n  border: 1.5px solid #e2e8f0;\n  border-radius: 20px;\n  padding: 36px;\n  box-shadow: 0 10px 30px -6px rgba(15, 23, 42, 0.06);\n  margin-top: 48px;\n}\n\n.annular-eaas-selector-tabs {\n  display: grid;\n  grid-template-columns: repeat(4, 1fr);\n  gap: 14px;\n  margin-bottom: 36px;\n  border-bottom: 1.5px solid #f1f5f9;\n  padding-bottom: 24px;\n}\n\n.annular-eaas-tab-btn {\n  display: flex;\n  align-items: center;\n  gap: 12px;\n  padding: 16px 18px;\n  background: #f8fafc;\n  border: 1.5px solid #e2e8f0;\n  border-radius: 12px;\n  cursor: pointer;\n  text-align: left;\n  transition: all 0.2s ease;\n}\n\n.annular-eaas-tab-btn:hover {\n  background: #eff6ff;\n  border-color: #bfdbfe;\n}\n\n.annular-eaas-tab-btn.active {\n  background: #2563eb;\n  border-color: #1d4ed8;\n  box-shadow: 0 6px 18px -3px rgba(37, 99, 235, 0.35);\n}\n\n.annular-eaas-tab-icon {\n  width: 36px;\n  height: 36px;\n  border-radius: 8px;\n  background: #ffffff;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: #2563eb;\n  flex-shrink: 0;\n  transition: all 0.2s ease;\n}\n\n.annular-eaas-tab-btn.active .annular-eaas-tab-icon {\n  background: rgba(255, 255, 255, 0.2);\n  color: #ffffff;\n}\n\n.annular-eaas-tab-title {\n  font-size: 14px;\n  font-weight: 700;\n  color: #0f172a;\n  line-height: 1.3;\n}\n\n.annular-eaas-tab-btn.active .annular-eaas-tab-title {\n  color: #ffffff;\n}\n\n.annular-eaas-panel {\n  display: none;\n  animation: eaasFadeIn 0.3s ease;\n}\n\n.annular-eaas-panel.active {\n  display: block;\n}\n\n@keyframes eaasFadeIn {\n  from { opacity: 0; transform: translateY(6px); }\n  to { opacity: 1; transform: translateY(0); }\n}\n\n.annular-eaas-cards-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));\n  gap: 24px;\n}\n\n.annular-eaas-cap-card {\n  background: #f8fafc;\n  border: 1.5px solid #e2e8f0;\n  border-radius: 14px;\n  padding: 28px 24px;\n  transition: all 0.2s ease;\n  display: flex;\n  flex-direction: column;\n}\n\n.annular-eaas-cap-card:hover {\n  background: #ffffff;\n  border-color: #93c5fd;\n  transform: translateY(-3px);\n  box-shadow: 0 10px 24px -4px rgba(37, 99, 235, 0.1);\n}\n\n.annular-eaas-cap-icon {\n  width: 40px;\n  height: 40px;\n  border-radius: 10px;\n  background: #eff6ff;\n  border: 1px solid #dbeafe;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: #2563eb;\n  margin-bottom: 16px;\n}\n\n.annular-eaas-cap-card h4 {\n  font-size: 19px;\n  font-weight: 800;\n  color: #0f172a;\n  margin: 0 0 10px;\n  line-height: 1.3;\n}\n\n.annular-eaas-cap-card p {\n  font-size: 14.5px;\n  color: #64748b;\n  line-height: 1.6;\n  margin: 0;\n}\n\n\/* ==========================================================================\n   SECTION 4: ENGAGEMENT PROCESS - DELIVERY PATHWAY\n   ========================================================================== *\/\n.annular-eaas-process-section {\n  padding: 95px 0;\n  background: #ffffff;\n  border-bottom: 1px solid #f1f5f9;\n}\n\n.annular-eaas-process-track {\n  display: grid;\n  grid-template-columns: repeat(6, 1fr);\n  gap: 16px;\n  margin-top: 52px;\n  position: relative;\n}\n\n.annular-eaas-process-step {\n  background: #ffffff;\n  border: 1.5px solid #e2e8f0;\n  border-radius: 18px;\n  padding: 26px 20px;\n  display: flex;\n  flex-direction: column;\n  transition: all 0.25s ease;\n}\n\n.annular-eaas-process-step:hover {\n  transform: translateY(-5px);\n  border-color: #3b82f6;\n  box-shadow: 0 14px 28px -6px rgba(37, 99, 235, 0.12);\n}\n\n.annular-eaas-step-number {\n  width: 36px;\n  height: 36px;\n  border-radius: 50%;\n  background: #eff6ff;\n  border: 1.5px solid #bfdbfe;\n  color: #2563eb;\n  font-size: 14px;\n  font-weight: 800;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  margin-bottom: 16px;\n}\n\n.annular-eaas-process-step h4 {\n  font-size: 18px;\n  font-weight: 800;\n  color: #0f172a;\n  margin: 0 0 10px;\n  line-height: 1.25;\n}\n\n.annular-eaas-process-step p {\n  font-size: 13.5px;\n  color: #64748b;\n  line-height: 1.55;\n  margin: 0;\n}\n\n\/* ==========================================================================\n   SECTION 5: ENGAGEMENT MODELS - SIDE-BY-SIDE COMPARISON\n   ========================================================================== *\/\n.annular-eaas-models-section {\n  padding: 95px 0;\n  background: #f8fafc;\n  border-bottom: 1px solid #f1f5f9;\n}\n\n.annular-eaas-models-grid {\n  display: grid;\n  grid-template-columns: 1fr 1fr;\n  gap: 32px;\n  margin-top: 48px;\n}\n\n.annular-eaas-model-card {\n  background: #ffffff;\n  border: 1.5px solid #e2e8f0;\n  border-radius: 18px;\n  padding: 38px 32px;\n  box-shadow: 0 4px 16px -2px rgba(15, 23, 42, 0.04);\n  transition: all 0.25s ease;\n  display: flex;\n  flex-direction: column;\n}\n\n.annular-eaas-model-card:hover {\n  transform: translateY(-4px);\n  border-color: #3b82f6;\n  box-shadow: 0 16px 32px -8px rgba(37, 99, 235, 0.12);\n}\n\n.annular-eaas-model-badge {\n  display: inline-flex;\n  align-items: center;\n  gap: 6px;\n  font-size: 11px;\n  font-weight: 800;\n  letter-spacing: 0.08em;\n  text-transform: uppercase;\n  color: #2563eb;\n  background: #eff6ff;\n  padding: 5px 14px;\n  border-radius: 6px;\n  margin-bottom: 18px;\n  width: fit-content;\n}\n\n.annular-eaas-model-card h3 {\n  font-size: 24px;\n  font-weight: 800;\n  color: #0f172a;\n  margin: 0 0 14px;\n  line-height: 1.3;\n}\n\n.annular-eaas-model-card p {\n  font-size: 15.5px;\n  color: #64748b;\n  line-height: 1.65;\n  margin: 0 0 24px;\n}\n\n.annular-eaas-model-footer {\n  margin-top: auto;\n  padding-top: 20px;\n  border-top: 1px solid #f1f5f9;\n  font-size: 13.5px;\n  font-weight: 600;\n  color: #2563eb;\n  display: flex;\n  align-items: center;\n  gap: 8px;\n}\n\n.annular-eaas-models-note {\n  text-align: center;\n  max-width: 820px;\n  margin: 36px auto 0;\n  font-size: 14.5px;\n  color: #64748b;\n  background: #ffffff;\n  padding: 14px 24px;\n  border-radius: 12px;\n  border: 1px dashed #cbd5e1;\n}\n\n\/* ==========================================================================\n   SECTION 6: WHY ANNULAR - ONE PARTNER ACROSS DISCIPLINES\n   ========================================================================== *\/\n.annular-eaas-why-section {\n  padding: 95px 0;\n  background: #ffffff;\n  border-bottom: 1px solid #f1f5f9;\n}\n\n.annular-eaas-why-grid {\n  display: grid;\n  grid-template-columns: 1fr 1fr;\n  gap: 60px;\n  align-items: center;\n}\n\n.annular-eaas-why-content h2 {\n  font-size: 38px;\n  font-weight: 800;\n  color: #0f172a;\n  line-height: 1.22;\n  letter-spacing: -0.025em;\n  margin: 0 0 20px;\n}\n\n.annular-eaas-why-lead {\n  font-size: 16.5px;\n  color: #475569;\n  line-height: 1.7;\n  margin: 0 0 32px;\n}\n\n.annular-eaas-disciplines-list {\n  display: grid;\n  grid-template-columns: 1fr 1fr;\n  gap: 16px;\n}\n\n.annular-eaas-disc-item {\n  padding: 16px;\n  background: #f8fafc;\n  border: 1.5px solid #e2e8f0;\n  border-radius: 12px;\n  display: flex;\n  align-items: center;\n  gap: 12px;\n}\n\n.annular-eaas-disc-icon {\n  width: 34px;\n  height: 34px;\n  border-radius: 8px;\n  background: #eff6ff;\n  border: 1px solid #bfdbfe;\n  color: #2563eb;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  flex-shrink: 0;\n}\n\n.annular-eaas-disc-name {\n  font-size: 14.5px;\n  font-weight: 700;\n  color: #0f172a;\n}\n\n.annular-eaas-why-visual-frame {\n  position: relative;\n  border-radius: 20px;\n  overflow: hidden;\n  box-shadow: 0 20px 45px -10px rgba(15, 23, 42, 0.12), 0 0 0 1px rgba(15, 23, 42, 0.05);\n  border: 1.5px solid #e2e8f0;\n}\n\n.annular-eaas-why-visual-frame img {\n  width: 100%;\n  height: auto;\n  display: block;\n  object-fit: cover;\n}\n\n\/* ==========================================================================\n   SECTION 7: FAQS - ACCESSIBLE ACCORDION\n   ========================================================================== *\/\n.annular-eaas-faq-section {\n  padding: 95px 0;\n  background: #f8fafc;\n  border-bottom: 1px solid #f1f5f9;\n}\n\n.annular-eaas-accordion {\n  max-width: 860px;\n  margin: 48px auto 0;\n  display: flex;\n  flex-direction: column;\n  gap: 14px;\n}\n\n.annular-eaas-faq-item {\n  background: #ffffff;\n  border: 1.5px solid #e2e8f0;\n  border-radius: 14px;\n  overflow: hidden;\n  transition: all 0.2s ease;\n}\n\n.annular-eaas-faq-item:hover {\n  border-color: #93c5fd;\n}\n\n.annular-eaas-faq-item.active {\n  border-color: #2563eb;\n  box-shadow: 0 6px 20px -4px rgba(37, 99, 235, 0.1);\n}\n\n.annular-eaas-faq-btn {\n  width: 100%;\n  padding: 22px 26px;\n  background: none;\n  border: none;\n  text-align: left;\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  gap: 16px;\n  cursor: pointer;\n  font-family: 'Plus Jakarta Sans', 'Inter', system-ui, -apple-system, sans-serif;\n  font-size: 17px;\n  font-weight: 750;\n  color: #0f172a;\n}\n\n.annular-eaas-faq-icon {\n  width: 28px;\n  height: 28px;\n  border-radius: 50%;\n  background: #eff6ff;\n  color: #2563eb;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  font-size: 18px;\n  flex-shrink: 0;\n  transition: transform 0.25s ease;\n}\n\n.annular-eaas-faq-item.active .annular-eaas-faq-icon {\n  transform: rotate(45deg);\n  background: #2563eb;\n  color: #ffffff;\n}\n\n.annular-eaas-faq-body {\n  padding: 0 26px 24px;\n  font-size: 15px;\n  color: #64748b;\n  line-height: 1.7;\n  display: none;\n}\n\n.annular-eaas-faq-item.active .annular-eaas-faq-body {\n  display: block;\n}\n\n\/* ==========================================================================\n   SECTION 8: FINAL CTA\n   ========================================================================== *\/\n.annular-eaas-cta-section {\n  padding: 95px 0;\n  background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);\n  position: relative;\n  overflow: hidden;\n}\n\n.annular-eaas-cta-inner {\n  text-align: center;\n  max-width: 780px;\n  margin: 0 auto;\n  position: relative;\n  z-index: 2;\n}\n\n.annular-eaas-cta-inner h2 {\n  font-size: 38px;\n  font-weight: 800;\n  color: #0f172a;\n  letter-spacing: -0.025em;\n  margin: 0 0 16px;\n  line-height: 1.25;\n}\n\n.annular-eaas-cta-inner p {\n  font-size: 17px;\n  color: #475569;\n  line-height: 1.65;\n  margin: 0 auto;\n  max-width: 640px;\n}\n\n.annular-eaas-cta-inner .annular-eaas-btn-group {\n  justify-content: center;\n}\n\n\/* ==========================================================================\n   RESPONSIVE DESIGN BREAKPOINTS\n   ========================================================================== *\/\n@media (max-width: 1080px) {\n  .annular-eaas-process-track {\n    grid-template-columns: repeat(3, 1fr);\n  }\n}\n\n@media (max-width: 900px) {\n  .annular-eaas-hero-grid,\n  .annular-eaas-overview-grid,\n  .annular-eaas-models-grid,\n  .annular-eaas-why-grid {\n    grid-template-columns: 1fr;\n    gap: 40px;\n  }\n  .annular-eaas-selector-tabs {\n    grid-template-columns: repeat(2, 1fr);\n  }\n  .annular-eaas-overview-triad {\n    grid-template-columns: 1fr;\n  }\n}\n\n@media (max-width: 640px) {\n  .annular-eaas-hero-content h1 {\n    font-size: 34px;\n  }\n  .annular-eaas-section-header h2,\n  .annular-eaas-overview-grid h2,\n  .annular-eaas-why-content h2,\n  .annular-eaas-cta-inner h2 {\n    font-size: 28px;\n  }\n  .annular-eaas-selector-tabs {\n    grid-template-columns: 1fr;\n  }\n  .annular-eaas-process-track {\n    grid-template-columns: 1fr;\n  }\n  .annular-eaas-disciplines-list {\n    grid-template-columns: 1fr;\n  }\n  .annular-eaas-faq-btn {\n    font-size: 15.5px;\n    padding: 18px 20px;\n  }\n  .annular-eaas-faq-body {\n    padding: 0 20px 20px;\n  }\n}\n\n\/* Additional narrow-screen safeguards; existing design and colours preserved. *\/\n@media (max-width: 900px) {\n  .annular-eaas-section-header,\n  .annular-eaas-hero-content,\n  .annular-eaas-overview-content,\n  .annular-eaas-why-content {\n    min-width: 0;\n  }\n  .annular-eaas-selector-box {\n    padding: 24px;\n  }\n  .annular-eaas-cards-grid {\n    grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));\n  }\n}\n\n@media (max-width: 640px) {\n  .annular-eaas-container {\n    padding-left: 18px;\n    padding-right: 18px;\n  }\n  .annular-eaas-hero-section,\n  .annular-eaas-overview-section,\n  .annular-eaas-capabilities-section,\n  .annular-eaas-process-section,\n  .annular-eaas-models-section,\n  .annular-eaas-why-section,\n  .annular-eaas-faq-section,\n  .annular-eaas-cta-section {\n    padding-top: 60px;\n    padding-bottom: 60px;\n  }\n  .annular-eaas-hero-grid,\n  .annular-eaas-overview-grid,\n  .annular-eaas-models-grid,\n  .annular-eaas-why-grid {\n    gap: 30px;\n  }\n  .annular-eaas-selector-box {\n    padding: 18px;\n    border-radius: 16px;\n  }\n  .annular-eaas-selector-tabs {\n    gap: 10px;\n    padding-bottom: 18px;\n  }\n  .annular-eaas-tab-btn {\n    min-width: 0;\n    padding: 13px;\n  }\n  .annular-eaas-tab-title {\n    overflow-wrap: anywhere;\n  }\n  .annular-eaas-btn-group {\n    align-items: stretch;\n  }\n  .annular-eaas-btn-group a {\n    max-width: 100%;\n    white-space: normal;\n    text-align: center;\n  }\n  .annular-eaas-hero-visual,\n  .annular-eaas-why-visual,\n  .annular-eaas-why-visual-frame {\n    min-width: 0;\n    max-width: 100%;\n  }\n  .annular-eaas-hero-visual img,\n  .annular-eaas-why-visual img {\n    max-width: 100%;\n    height: auto;\n  }\n}\n\n\/* Keep motion comfortable for visitors who request reduced animation. *\/\n@media (prefers-reduced-motion: reduce) {\n  .annular-eaas-page-wrapper *,\n  .annular-eaas-page-wrapper *::before,\n  .annular-eaas-page-wrapper *::after {\n    scroll-behavior: auto !important;\n    animation-duration: 0.01ms !important;\n    animation-iteration-count: 1 !important;\n    transition-duration: 0.01ms !important;\n  }\n}\n\n\/* ==========================================================================\n   STANDARDIZED PRIMARY & SECONDARY BUTTON SYSTEM\n   Primary:\n     Background: var(--adm-blue-primary) -> #0052FF\n     Button text: var(--adm-white) -> #FFFFFF\n     Hover background: var(--adm-blue-deep) -> #003087\n     Border: rgba(255, 255, 255, 0.3)\n     Hover shadow: rgba(0, 82, 255, 0.42)\n   Secondary:\n     Background: #FFFFFF | Text: #0F172A | Border: #CBD5E1\n     Hover background: #F8FAFC | Hover text: #2563EB\n   ========================================================================== *\/\n.annular-eaas-btn-primary {\n  background: #0052ff !important;\n  color: #ffffff !important;\n  border: 1px solid rgba(255, 255, 255, 0.3) !important;\n  box-shadow: 0 8px 24px -2px rgba(0, 82, 255, 0.28) !important;\n  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1) !important;\n  text-decoration: none !important;\n}\n\n.annular-eaas-btn-primary:hover {\n  background: #003087 !important;\n  color: #ffffff !important;\n  border-color: rgba(255, 255, 255, 0.3) !important;\n  transform: translateY(-2px) !important;\n  box-shadow: 0 12px 30px -2px rgba(0, 82, 255, 0.42) !important;\n  text-decoration: none !important;\n}\n\n.annular-eaas-btn-primary svg, .annular-eaas-btn-primary span {\n  color: #ffffff !important;\n  -webkit-text-fill-color: #ffffff !important;\n}\n\n.annular-eaas-btn-secondary {\n  background: #ffffff !important;\n  color: #0f172a !important;\n  border: 1.5px solid #cbd5e1 !important;\n  border-color: #cbd5e1 !important;\n  transition: all 0.2s ease !important;\n  text-decoration: none !important;\n}\n\n.annular-eaas-btn-secondary:hover {\n  background: #f8fafc !important;\n  color: #2563eb !important;\n  border-color: #cbd5e1 !important;\n  transform: translateY(-2px) !important;\n  text-decoration: none !important;\n}\n\n.annular-eaas-btn-secondary svg, .annular-eaas-btn-secondary span {\n  color: #0f172a !important;\n  -webkit-text-fill-color: #0f172a !important;\n}\n\n.annular-eaas-btn-secondary:hover svg, .annular-eaas-btn-secondary:hover span {\n  color: #2563eb !important;\n  -webkit-text-fill-color: #2563eb !important;\n}\n\n\/* ==========================================================================\n   STANDARDIZED HEADINGS ACCENT TEXT GRADIENT\n   Starting blue: #0052FF | Ending deep blue: #002B80 | Angle: 135deg\n   ========================================================================== *\/\n.annular-eaas-section-wrap h1 span,\n.annular-eaas-section-wrap h2 span,\n.annular-eaas-hero h1 span,\n.annular-eaas-header h2 span {\n  background: linear-gradient(135deg, #0052ff 0%, #002b80 100%) !important;\n  -webkit-background-clip: text !important;\n  -webkit-text-fill-color: transparent !important;\n  background-clip: text !important;\n  color: transparent !important;\n  display: inline-block !important;\n}\n\n<\/style>\n\n<div class=\"annular-eaas-page-wrapper\">\n\n  <!-- ========================================================\n       SECTION 1: HERO - BUILD YOUR DELIVERY TEAM\n       ======================================================== -->\n  <section class=\"annular-eaas-hero-section\">\n    <div class=\"annular-eaas-container\">\n      <div class=\"annular-eaas-hero-grid\">\n        <div class=\"annular-eaas-hero-content\">\n          <h1>Extend Your Delivery Capacity With a <span>Dedicated Development Team in India<\/span><\/h1>\n          <p>Add skilled technology professionals and delivery support for defined initiatives, without building every capability in-house. Annular works with your organization to match skills, scope and delivery expectations to your business needs, from dedicated developers to full offshore development teams.<\/p>\n          <div class=\"annular-eaas-btn-group\">\n            <a href=\"#lets-talk\" class=\"annular-eaas-btn-primary\">\n              Build Your Team\n              <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"><\/line><polyline points=\"12 5 19 12 12 19\"><\/polyline><\/svg>\n            <\/a>\n            <a href=\"#lets-talk\" class=\"annular-eaas-btn-secondary\">\n              Discuss Your Requirements\n            <\/a>\n          <\/div>\n          <div class=\"annular-eaas-hero-indicators\">\n            <div class=\"annular-eaas-hero-indicator-item\">\n              <span class=\"annular-eaas-hero-indicator-dot\"><\/span>\n              Dedicated Engineering Capacity\n            <\/div>\n            <div class=\"annular-eaas-hero-indicator-item\">\n              <span class=\"annular-eaas-hero-indicator-dot\"><\/span>\n              Specialist Skills on Demand\n            <\/div>\n            <div class=\"annular-eaas-hero-indicator-item\">\n              <span class=\"annular-eaas-hero-indicator-dot\"><\/span>\n              Agile Milestone Delivery\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"annular-eaas-hero-visual-wrapper\">\n          <div class=\"annular-eaas-hero-image-frame\">\n            <img fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/web.annulartechnologies.com\/staging\/wp-content\/uploads\/2026\/10\/eaas-hero-team-assembly.jpg\" alt=\"Delivery Team Assembly Studio - Dedicated Development Teams in India\" width=\"1280\" height=\"720\" loading=\"eager\" \/>\n          <\/div>\n          <div class=\"annular-eaas-floating-chip-top\">\n            <span class=\"annular-eaas-chip-dot\"><\/span>\n            <div>\n              <div class=\"annular-eaas-chip-text\">Delivery Assembly Studio<\/div>\n              <div class=\"annular-eaas-chip-sub\">Matched to Your Requirements<\/div>\n            <\/div>\n          <\/div>\n          <div class=\"annular-eaas-floating-chip-bottom\">\n            <div class=\"annular-eaas-chip-icon-box\">\n              <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"><\/path><circle cx=\"9\" cy=\"7\" r=\"4\"><\/circle><path d=\"M23 21v-2a4 4 0 0 0-3-3.87\"><\/path><path d=\"M16 3.13a4 4 0 0 1 0 7.75\"><\/path><\/svg>\n            <\/div>\n            <div>\n              <div class=\"annular-eaas-chip-text\">Dedicated Technology Teams<\/div>\n              <div class=\"annular-eaas-chip-sub\">Offshore Engineers \u00b7 Chennai, India<\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- ========================================================\n       SECTION 2: OVERVIEW - CAPACITY THAT FITS THE WORK\n       ======================================================== -->\n  <section class=\"annular-eaas-overview-section\">\n    <div class=\"annular-eaas-container\">\n      <div class=\"annular-eaas-overview-grid\">\n        <div>\n          <h2>Capacity That <span>Fits the Work<\/span><\/h2>\n        <\/div>\n        <div>\n          <p>When project demand changes or specialist skills are needed, added delivery capacity helps teams keep their momentum. Execution as a Service is a structured way to engage technology expertise in India for agreed work, with clear responsibilities, regular communication and delivery checkpoints.<\/p>\n        <\/div>\n      <\/div>\n\n      <div class=\"annular-eaas-overview-triad\">\n        <div class=\"annular-eaas-triad-card\">\n          <div class=\"annular-eaas-triad-icon\">\n            <svg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\"><path d=\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"><\/path><polyline points=\"3.27 6.96 12 12.01 20.73 6.96\"><\/polyline><line x1=\"12\" y1=\"22.08\" x2=\"12\" y2=\"12\"><\/line><\/svg>\n          <\/div>\n          <div class=\"annular-eaas-triad-title\">Flexible technology capacity<\/div>\n        <\/div>\n\n        <div class=\"annular-eaas-triad-card\">\n          <div class=\"annular-eaas-triad-icon\">\n            <svg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\"><path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"><\/path><polyline points=\"14 2 14 8 20 8\"><\/polyline><line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"><\/line><line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"><\/line><polyline points=\"10 9 9 9 8 9\"><\/polyline><\/svg>\n          <\/div>\n          <div class=\"annular-eaas-triad-title\">Clear responsibilities<\/div>\n        <\/div>\n\n        <div class=\"annular-eaas-triad-card\">\n          <div class=\"annular-eaas-triad-icon\">\n            <svg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\"><circle cx=\"12\" cy=\"12\" r=\"10\"><\/circle><polyline points=\"12 6 12 12 16 14\"><\/polyline><\/svg>\n          <\/div>\n          <div class=\"annular-eaas-triad-title\">Regular delivery checkpoints<\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- ========================================================\n       SECTION 3: CAPABILITIES - MODULAR CAPABILITY SELECTOR\n       ======================================================== -->\n  <section class=\"annular-eaas-capabilities-section\">\n    <div class=\"annular-eaas-container\">\n      <div class=\"annular-eaas-section-header\">\n        <h2>Bring the Skills <span>Your Initiative Needs<\/span><\/h2>\n        <p>Select a capability category below to view how our specialized engineering and delivery teams align with your project scope.<\/p>\n      <\/div>\n\n      <div class=\"annular-eaas-selector-box\">\n        <div class=\"annular-eaas-selector-tabs\" role=\"tablist\">\n          <button class=\"annular-eaas-tab-btn active\" data-tab=\"0\" id=\"eaas-tab-0\" role=\"tab\" aria-controls=\"eaas-panel-0\" aria-selected=\"true\" tabindex=\"0\">\n            <div class=\"annular-eaas-tab-icon\">\n              <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><polyline points=\"16 18 22 12 16 6\"><\/polyline><polyline points=\"8 6 2 12 8 18\"><\/polyline><\/svg>\n            <\/div>\n            <div class=\"annular-eaas-tab-title\">Software and Product Engineering<\/div>\n          <\/button>\n          <button class=\"annular-eaas-tab-btn\" data-tab=\"1\" id=\"eaas-tab-1\" role=\"tab\" aria-controls=\"eaas-panel-1\" aria-selected=\"false\" tabindex=\"-1\">\n            <div class=\"annular-eaas-tab-icon\">\n              <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M12 2a10 10 0 1 0 10 10A10 10 0 0 0 12 2zm1 14h-2v-2h2zm0-4h-2V7h2z\"><\/path><\/svg>\n            <\/div>\n            <div class=\"annular-eaas-tab-title\">Quality and AI<\/div>\n          <\/button>\n          <button class=\"annular-eaas-tab-btn\" data-tab=\"2\" id=\"eaas-tab-2\" role=\"tab\" aria-controls=\"eaas-panel-2\" aria-selected=\"false\" tabindex=\"-1\">\n            <div class=\"annular-eaas-tab-icon\">\n              <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M18 10h-1.26A8 8 0 1 0 9 20h9a5 5 0 0 0 0-10z\"><\/path><\/svg>\n            <\/div>\n            <div class=\"annular-eaas-tab-title\">Cloud and Modernization<\/div>\n          <\/button>\n          <button class=\"annular-eaas-tab-btn\" data-tab=\"3\" id=\"eaas-tab-3\" role=\"tab\" aria-controls=\"eaas-panel-3\" aria-selected=\"false\" tabindex=\"-1\">\n            <div class=\"annular-eaas-tab-icon\">\n              <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"><\/path><circle cx=\"9\" cy=\"7\" r=\"4\"><\/circle><path d=\"M23 21v-2a4 4 0 0 0-3-3.87\"><\/path><path d=\"M16 3.13a4 4 0 0 1 0 7.75\"><\/path><\/svg>\n            <\/div>\n            <div class=\"annular-eaas-tab-title\">Team and Delivery Models<\/div>\n          <\/button>\n        <\/div>\n\n        <!-- Panel 0: Software and Product Engineering -->\n        <div class=\"annular-eaas-panel active\" id=\"eaas-panel-0\" role=\"tabpanel\" aria-labelledby=\"eaas-tab-0\" tabindex=\"0\">\n          <div class=\"annular-eaas-cards-grid\">\n            <div class=\"annular-eaas-cap-card\">\n              <div class=\"annular-eaas-cap-icon\">\n                <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\"><polyline points=\"16 18 22 12 16 6\"><\/polyline><polyline points=\"8 6 2 12 8 18\"><\/polyline><\/svg>\n              <\/div>\n              <h4>Software Development<\/h4>\n              <p>Web, mobile, backend and enterprise application development support.<\/p>\n            <\/div>\n            <div class=\"annular-eaas-cap-card\">\n              <div class=\"annular-eaas-cap-icon\">\n                <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\"><polygon points=\"12 2 2 7 12 12 22 7 12 2\"><\/polygon><polyline points=\"2 17 12 22 22 17\"><\/polyline><polyline points=\"2 12 12 17 22 12\"><\/polyline><\/svg>\n              <\/div>\n              <h4>Product Engineering<\/h4>\n              <p>Added skills for product development, enhancements and modernization.<\/p>\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <!-- Panel 1: Quality and AI -->\n        <div class=\"annular-eaas-panel\" id=\"eaas-panel-1\" role=\"tabpanel\" aria-labelledby=\"eaas-tab-1\" tabindex=\"0\" hidden>\n          <div class=\"annular-eaas-cards-grid\">\n            <div class=\"annular-eaas-cap-card\">\n              <div class=\"annular-eaas-cap-icon\">\n                <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\"><path d=\"M22 11.08V12a10 10 0 1 1-5.93-9.14\"><\/path><polyline points=\"22 4 12 14.01 9 11.01\"><\/polyline><\/svg>\n              <\/div>\n              <h4>Quality Engineering<\/h4>\n              <p>Support for manual testing, test automation and release validation.<\/p>\n            <\/div>\n            <div class=\"annular-eaas-cap-card\">\n              <div class=\"annular-eaas-cap-icon\">\n                <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\"><circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle><path d=\"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z\"><\/path><\/svg>\n              <\/div>\n              <h4>AI Development<\/h4>\n              <p>Engineering support for AI applications, integrations and workflows.<\/p>\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <!-- Panel 2: Cloud and Modernization -->\n        <div class=\"annular-eaas-panel\" id=\"eaas-panel-2\" role=\"tabpanel\" aria-labelledby=\"eaas-tab-2\" tabindex=\"0\" hidden>\n          <div class=\"annular-eaas-cards-grid\">\n            <div class=\"annular-eaas-cap-card\">\n              <div class=\"annular-eaas-cap-icon\">\n                <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\"><path d=\"M18 10h-1.26A8 8 0 1 0 9 20h9a5 5 0 0 0 0-10z\"><\/path><\/svg>\n              <\/div>\n              <h4>Cloud and Application Modernization<\/h4>\n              <p>Support for migration planning, application changes and modernization.<\/p>\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <!-- Panel 3: Team and Delivery Models -->\n        <div class=\"annular-eaas-panel\" id=\"eaas-panel-3\" role=\"tabpanel\" aria-labelledby=\"eaas-tab-3\" tabindex=\"0\" hidden>\n          <div class=\"annular-eaas-cards-grid\">\n            <div class=\"annular-eaas-cap-card\">\n              <div class=\"annular-eaas-cap-icon\">\n                <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\"><path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"><\/path><circle cx=\"9\" cy=\"7\" r=\"4\"><\/circle><path d=\"M23 21v-2a4 4 0 0 0-3-3.87\"><\/path><path d=\"M16 3.13a4 4 0 0 1 0 7.75\"><\/path><\/svg>\n              <\/div>\n              <h4>Dedicated Technology Teams<\/h4>\n              <p>A dedicated development team formed around the roles, skills and delivery scope you need.<\/p>\n            <\/div>\n            <div class=\"annular-eaas-cap-card\">\n              <div class=\"annular-eaas-cap-icon\">\n                <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"><\/polygon><\/svg>\n              <\/div>\n              <h4>Project-Based Execution<\/h4>\n              <p>Work toward defined deliverables with agreed milestones and responsibilities.<\/p>\n            <\/div>\n          <\/div>\n        <\/div>\n\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- ========================================================\n       SECTION 4: ENGAGEMENT PROCESS - DELIVERY PATHWAY\n       ======================================================== -->\n  <section class=\"annular-eaas-process-section\">\n    <div class=\"annular-eaas-container\">\n      <div class=\"annular-eaas-section-header\">\n        <h2>From First Conversation to <span>Ongoing Delivery<\/span><\/h2>\n        <p>A disciplined framework built around transparency, regular syncs, and predictable engineering output.<\/p>\n      <\/div>\n\n      <div class=\"annular-eaas-process-track\">\n        <!-- 01 \u2014 Discuss -->\n        <div class=\"annular-eaas-process-step\">\n          <div class=\"annular-eaas-step-number\">01<\/div>\n          <h4>Discuss<\/h4>\n          <p>Understand goals, scope, required skills and existing ways of working.<\/p>\n        <\/div>\n\n        <!-- 02 \u2014 Define -->\n        <div class=\"annular-eaas-process-step\">\n          <div class=\"annular-eaas-step-number\">02<\/div>\n          <h4>Define<\/h4>\n          <p>Agree on responsibilities, deliverables, communication and success criteria.<\/p>\n        <\/div>\n\n        <!-- 03 \u2014 Align -->\n        <div class=\"annular-eaas-process-step\">\n          <div class=\"annular-eaas-step-number\">03<\/div>\n          <h4>Align<\/h4>\n          <p>Select the right team structure and onboarding plan.<\/p>\n        <\/div>\n\n        <!-- 04 \u2014 Execute -->\n        <div class=\"annular-eaas-process-step\">\n          <div class=\"annular-eaas-step-number\">04<\/div>\n          <h4>Execute<\/h4>\n          <p>Work through agreed priorities with regular progress updates.<\/p>\n        <\/div>\n\n        <!-- 05 \u2014 Review -->\n        <div class=\"annular-eaas-process-step\">\n          <div class=\"annular-eaas-step-number\">05<\/div>\n          <h4>Review<\/h4>\n          <p>Evaluate deliverables, quality and emerging requirements.<\/p>\n        <\/div>\n\n        <!-- 06 \u2014 Adapt -->\n        <div class=\"annular-eaas-process-step\">\n          <div class=\"annular-eaas-step-number\">06<\/div>\n          <h4>Adapt<\/h4>\n          <p>Adjust priorities or team needs through an agreed change process.<\/p>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- ========================================================\n       SECTION 5: ENGAGEMENT MODELS - SIDE-BY-SIDE\n       ======================================================== -->\n  <section class=\"annular-eaas-models-section\">\n    <div class=\"annular-eaas-container\">\n      <div class=\"annular-eaas-section-header\">\n        <h2>Choose How You <span>Work With Us<\/span><\/h2>\n        <p>Flexible engagement paths tailored to your technical complexity, team collaboration preferences, and milestone structure.<\/p>\n      <\/div>\n\n      <div class=\"annular-eaas-models-grid\">\n        <!-- Model 1 -->\n        <div class=\"annular-eaas-model-card\">\n          <div class=\"annular-eaas-model-badge\">Model 01 \u00b7 Ongoing Capacity<\/div>\n          <h3>Dedicated Development Team<\/h3>\n          <p>A dedicated team formed around the roles, skills and delivery scope your organization needs. Designed to add focused capacity and work alongside your existing ways of working.<\/p>\n          <div class=\"annular-eaas-model-footer\">\n            <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\"><path d=\"M22 11.08V12a10 10 0 1 1-5.93-9.14\"><\/path><polyline points=\"22 4 12 14.01 9 11.01\"><\/polyline><\/svg>\n            Focused capacity working alongside your team\n          <\/div>\n        <\/div>\n\n        <!-- Model 2 -->\n        <div class=\"annular-eaas-model-card\">\n          <div class=\"annular-eaas-model-badge\" style=\"background: #2563eb; color: #ffffff;\">Model 02 \u00b7 Defined Deliverables<\/div>\n          <h3>Project-Based Execution<\/h3>\n          <p>Work toward defined deliverables with agreed milestones, responsibilities and review points.<\/p>\n          <div class=\"annular-eaas-model-footer\">\n            <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\"><path d=\"M22 11.08V12a10 10 0 1 1-5.93-9.14\"><\/path><polyline points=\"22 4 12 14.01 9 11.01\"><\/polyline><\/svg>\n            Agile sprints with agreed milestones & reviews\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"annular-eaas-models-note\">\n        <strong>Working arrangement notice:<\/strong> The appropriate engagement model depends on your goals, required skills, project scope and preferred working arrangement.\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- ========================================================\n       SECTION 6: WHY ANNULAR - ONE PARTNER ACROSS DISCIPLINES\n       ======================================================== -->\n  <section class=\"annular-eaas-why-section\">\n    <div class=\"annular-eaas-container\">\n      <div class=\"annular-eaas-why-grid\">\n        <div class=\"annular-eaas-why-content\">\n          <h2>One Partner Across <span>Multiple Technology Disciplines<\/span><\/h2>\n          <p class=\"annular-eaas-why-lead\">Annular offers capabilities across software engineering, AI, cloud and quality engineering, so your engagement can be matched to the initiative. Team composition, availability, timelines and commercial terms are confirmed for each requirement.<\/p>\n\n          <div class=\"annular-eaas-disciplines-list\">\n            <div class=\"annular-eaas-disc-item\">\n              <div class=\"annular-eaas-disc-icon\">\n                <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\"><polyline points=\"16 18 22 12 16 6\"><\/polyline><polyline points=\"8 6 2 12 8 18\"><\/polyline><\/svg>\n              <\/div>\n              <div class=\"annular-eaas-disc-name\">Software engineering<\/div>\n            <\/div>\n\n            <div class=\"annular-eaas-disc-item\">\n              <div class=\"annular-eaas-disc-icon\">\n                <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\"><circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle><path d=\"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z\"><\/path><\/svg>\n              <\/div>\n              <div class=\"annular-eaas-disc-name\">Artificial intelligence<\/div>\n            <\/div>\n\n            <div class=\"annular-eaas-disc-item\">\n              <div class=\"annular-eaas-disc-icon\">\n                <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\"><path d=\"M18 10h-1.26A8 8 0 1 0 9 20h9a5 5 0 0 0 0-10z\"><\/path><\/svg>\n              <\/div>\n              <div class=\"annular-eaas-disc-name\">Cloud and application modernization<\/div>\n            <\/div>\n\n            <div class=\"annular-eaas-disc-item\">\n              <div class=\"annular-eaas-disc-icon\">\n                <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\"><path d=\"M22 11.08V12a10 10 0 1 1-5.93-9.14\"><\/path><polyline points=\"22 4 12 14.01 9 11.01\"><\/polyline><\/svg>\n              <\/div>\n              <div class=\"annular-eaas-disc-name\">Quality engineering<\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"annular-eaas-why-visual-frame\">\n          <img decoding=\"async\" src=\"https:\/\/web.annulartechnologies.com\/staging\/wp-content\/uploads\/2026\/10\/eaas-delivery-disciplines.jpg\" alt=\"One Partner Across Multiple Technology Disciplines\" width=\"1024\" height=\"768\" loading=\"lazy\" \/>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- ========================================================\n       SECTION 7: FAQS - ACCESSIBLE ACCORDION\n       ======================================================== -->\n  <section class=\"annular-eaas-faq-section\">\n    <div class=\"annular-eaas-container\">\n      <div class=\"annular-eaas-section-header\">\n        <h2>Questions About Dedicated Teams<\/h2>\n        <p>Everything you need to know about engaging offshore development teams and dedicated technology professionals with Annular.<\/p>\n      <\/div>\n\n      <div class=\"annular-eaas-accordion\">\n        <!-- Q1 -->\n        <div class=\"annular-eaas-faq-item active\">\n          <button class=\"annular-eaas-faq-btn\" aria-expanded=\"true\">\n            <span>Q1. How do I hire a dedicated development team in India?<\/span>\n            <div class=\"annular-eaas-faq-icon\">+<\/div>\n          <\/button>\n          <div class=\"annular-eaas-faq-body\">\n            Share your goals, scope and the skills you need. Annular will propose a team structure, agree responsibilities and communication, and onboard the team to your ways of working.\n          <\/div>\n        <\/div>\n\n        <!-- Q2 -->\n        <div class=\"annular-eaas-faq-item\">\n          <button class=\"annular-eaas-faq-btn\" aria-expanded=\"false\">\n            <span>Q2. What are the benefits of hiring a dedicated development team?<\/span>\n            <div class=\"annular-eaas-faq-icon\">+<\/div>\n          <\/button>\n          <div class=\"annular-eaas-faq-body\">\n            You gain focused capacity and specialist skills without the time and effort of building every role in-house, and you can adjust the team as priorities change.\n          <\/div>\n        <\/div>\n\n        <!-- Q3 -->\n        <div class=\"annular-eaas-faq-item\">\n          <button class=\"annular-eaas-faq-btn\" aria-expanded=\"false\">\n            <span>Q3. Dedicated development team vs in-house developers: which is better?<\/span>\n            <div class=\"annular-eaas-faq-icon\">+<\/div>\n          <\/button>\n          <div class=\"annular-eaas-faq-body\">\n            In-house teams suit long-term core capabilities, while a dedicated team adds capacity and specific skills faster. Many organizations use both together.\n          <\/div>\n        <\/div>\n\n        <!-- Q4 -->\n        <div class=\"annular-eaas-faq-item\">\n          <button class=\"annular-eaas-faq-btn\" aria-expanded=\"false\">\n            <span>Q4. Dedicated development team vs outsourcing: what is the difference?<\/span>\n            <div class=\"annular-eaas-faq-icon\">+<\/div>\n          <\/button>\n          <div class=\"annular-eaas-faq-body\">\n            A dedicated team works as an extension of your organization on an ongoing basis. Project outsourcing delivers a defined scope with agreed milestones. Annular supports both models.\n          <\/div>\n        <\/div>\n\n        <!-- Q5 -->\n        <div class=\"annular-eaas-faq-item\">\n          <button class=\"annular-eaas-faq-btn\" aria-expanded=\"false\">\n            <span>Q5. How much does a dedicated development team in India cost?<\/span>\n            <div class=\"annular-eaas-faq-icon\">+<\/div>\n          <\/button>\n          <div class=\"annular-eaas-faq-body\">\n            Cost depends on team size, roles, skills and engagement duration. Tell us your requirements and we will confirm the commercial terms.\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- ========================================================\n       SECTION 8: FINAL CTA\n       ======================================================== -->\n  <section class=\"annular-eaas-cta-section\" id=\"lets-talk\">\n    <div class=\"annular-eaas-container\">\n      <div class=\"annular-eaas-cta-inner\">\n        <h2>Build the Capacity <span>Your Next Initiative Needs<\/span><\/h2>\n        <p>Need extra engineering capacity or a dedicated team for a specific initiative? Share your goals and required skills with Annular.<\/p>\n        <div class=\"annular-eaas-btn-group\">\n          <a href=\"#lets-talk\" class=\"annular-eaas-btn-primary\">\n            Build Your Team\n            <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"><\/line><polyline points=\"12 5 19 12 12 19\"><\/polyline><\/svg>\n          <\/a>\n          <a href=\"#lets-talk\" class=\"annular-eaas-btn-secondary\">\n            Discuss Your Requirements\n          <\/a>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n<\/div>\n\n<script>\n(function () {\n  function initAnnularEaasPage() {\n    document.querySelectorAll('.annular-eaas-page-wrapper').forEach(function (root) {\n      if (root.dataset.eaasInitialized === 'true') return;\n      root.dataset.eaasInitialized = 'true';\n\n      \/* Capability selector: all queries and updates stay inside this page instance. *\/\n      var tabs = Array.prototype.slice.call(root.querySelectorAll('.annular-eaas-tab-btn'));\n      var panels = Array.prototype.slice.call(root.querySelectorAll('.annular-eaas-panel'));\n\n      function activateTab(tab, moveFocus) {\n        var index = tab.getAttribute('data-tab');\n        tabs.forEach(function (item) {\n          var selected = item === tab;\n          item.classList.toggle('active', selected);\n          item.setAttribute('aria-selected', selected ? 'true' : 'false');\n          item.setAttribute('tabindex', selected ? '0' : '-1');\n        });\n        panels.forEach(function (panel) {\n          var selected = panel.id === 'eaas-panel-' + index;\n          panel.classList.toggle('active', selected);\n          panel.hidden = !selected;\n        });\n        if (moveFocus) tab.focus();\n      }\n\n      tabs.forEach(function (tab, index) {\n        tab.addEventListener('click', function () { activateTab(tab, false); });\n        tab.addEventListener('keydown', function (event) {\n          var nextIndex = index;\n          if (event.key === 'ArrowRight' || event.key === 'ArrowDown') nextIndex = (index + 1) % tabs.length;\n          else if (event.key === 'ArrowLeft' || event.key === 'ArrowUp') nextIndex = (index - 1 + tabs.length) % tabs.length;\n          else if (event.key === 'Home') nextIndex = 0;\n          else if (event.key === 'End') nextIndex = tabs.length - 1;\n          else return;\n          event.preventDefault();\n          activateTab(tabs[nextIndex], true);\n        });\n      });\n      if (tabs.length) {\n        var selectedTab = tabs.find(function (tab) { return tab.getAttribute('aria-selected') === 'true'; }) || tabs[0];\n        activateTab(selectedTab, false);\n      }\n\n      \/* FAQ accordion: only one answer is expanded at a time. *\/\n      var faqItems = Array.prototype.slice.call(root.querySelectorAll('.annular-eaas-faq-item'));\n      faqItems.forEach(function (item, index) {\n        var button = item.querySelector('.annular-eaas-faq-btn');\n        var body = item.querySelector('.annular-eaas-faq-body');\n        if (!button || !body) return;\n        if (!body.id) body.id = 'eaas-faq-answer-' + index + '-' + Math.random().toString(36).slice(2, 7);\n        button.setAttribute('aria-controls', body.id);\n        body.hidden = !item.classList.contains('active');\n        button.setAttribute('aria-expanded', item.classList.contains('active') ? 'true' : 'false');\n        button.addEventListener('click', function () {\n          var shouldOpen = !item.classList.contains('active');\n          faqItems.forEach(function (other) {\n            other.classList.remove('active');\n            var otherButton = other.querySelector('.annular-eaas-faq-btn');\n            var otherBody = other.querySelector('.annular-eaas-faq-body');\n            if (otherButton) otherButton.setAttribute('aria-expanded', 'false');\n            if (otherBody) otherBody.hidden = true;\n          });\n          if (shouldOpen) {\n            item.classList.add('active');\n            button.setAttribute('aria-expanded', 'true');\n            body.hidden = false;\n          }\n        });\n      });\n    });\n  }\n\n  \/* Works both when loaded before DOMContentLoaded and when Avada injects it later. *\/\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', initAnnularEaasPage, { once: true });\n  } else {\n    initAnnularEaasPage();\n  }\n})();\n<\/script><\/div><\/div><\/div><\/div><br \/>\n<div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-2 fusion-flex-container hundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-padding-top:0px;--awb-padding-right:0px;--awb-padding-bottom:0px;--awb-padding-left:0px;--awb-margin-top:0px;--awb-margin-bottom:0px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"width:104% !important;max-width:104% !important;margin-left: calc(-4% \/ 2 );margin-right: calc(-4% \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-1 fusion_builder_column_1_1 1_1 fusion-flex-column\" style=\"--awb-padding-top:0px;--awb-padding-right:0px;--awb-padding-bottom:0px;--awb-padding-left:0px;--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:0px;--awb-spacing-left-large:1.92%;--awb-width-medium:100%;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-flex-justify-content-flex-start fusion-content-layout-column\"><!-- =====================================================\n ANNULAR TECHNOLOGIES | TWO-STEP CONSULTATION POPUP\n WordPress \/ Avada + EmailJS + Email OTP\n Responsive Form + PODS \/ Annular Domain Detection\n===================================================== -->\n\n<style>\n#annular-open {\n  display:inline-flex;align-items:center;justify-content:center;\n  min-height:48px;padding:13px 25px;border:0;border-radius:30px;\n  max-width: 40%;\n  background:#175cff;color:#fff;font-family:inherit;font-size:14px;\n  font-weight:600;cursor:pointer;transition:.2s;\n}\n#annular-open:hover {background:#1048d8;transform:translateY(-1px)}\n\nhtml.annular-popup-open,body.annular-popup-open {\n  overflow:hidden!important;\n}\n\n#annular-modal,#annular-thankyou-modal {\n  display:none;position:fixed!important;inset:0!important;\n  z-index:2147483647!important;width:100%!important;height:100vh!important;\n  height:100dvh!important;box-sizing:border-box!important;padding:16px!important;\n  align-items:center!important;justify-content:center!important;\n  overflow-y:auto!important;background:rgba(15,23,42,.68);\n}\n#annular-modal.is-open,#annular-thankyou-modal.is-open {\n  display:flex!important;\n}\n\n#annular-modal .annular-card {\n  position:relative;width:100%;max-width:480px;\n  max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);\n  box-sizing:border-box;margin:auto;padding:27px;\n  overflow-y:auto;overscroll-behavior:contain;\n  border:1px solid #eaecf0;border-radius:20px;\n  background:#fff;color:#171717;box-shadow:0 20px 70px #0003;\n}\n\n#annular-modal h3 {\n  margin:0 42px 8px 0;color:#171717;font-size:25px;\n  font-weight:700;line-height:1.3;\n}\n#annular-modal .annular-description {\n  margin:0 0 20px;color:#667085;font-size:13px;line-height:1.7;\n}\n\n#annular-close,#annular-thankyou-close {\n  position:absolute;top:12px;right:12px;display:flex;\n  align-items:center;justify-content:center;width:34px;height:34px;\n  padding:0;border:0;border-radius:50%;background:#f3f4f6;\n  color:#4b5563;font-size:24px;cursor:pointer;\n}\n#annular-close:hover,#annular-thankyou-close:hover {\n  background:#e5e7eb;\n}\n\n#annular-modal .annular-progress {\n  display:flex;align-items:center;gap:10px;margin:0 0 20px;\n}\n#annular-modal .annular-progress-line {\n  flex:1;height:3px;border-radius:5px;background:#e5e7eb;\n}\n#annular-modal .annular-progress-line.active {\n  background:#175cff;\n}\n#annular-modal .annular-step-label {\n  margin-bottom:8px;color:#175cff;font-size:11px;font-weight:700;\n  letter-spacing:1px;text-transform:uppercase;\n}\n#annular-modal #annular-form {\n  width:100%;margin:0;\n}\n#annular-modal .annular-screen[hidden],\n#annular-modal #annular-otp-area[hidden] {\n  display:none!important;\n}\n#annular-modal .annular-field {\n  width:100%;min-width:0;margin:0 0 16px;\n}\n#annular-modal label {\n  display:block;margin-bottom:7px;color:#344054;font-size:13px;\n  font-weight:600;line-height:1.4;\n}\n#annular-modal input,#annular-modal textarea {\n  display:block;width:100%;min-width:0;min-height:46px;\n  box-sizing:border-box;margin:0;padding:12px 14px;\n  border:1px solid #d0d5dd;border-radius:11px;background:#fff;\n  color:#171717;font-family:inherit;font-size:14px;line-height:1.5;\n  box-shadow:none;transition:border-color .2s,box-shadow .2s;\n}\n#annular-modal textarea {\n  min-height:105px;resize:vertical;\n}\n#annular-modal input::placeholder,\n#annular-modal textarea::placeholder {\n  color:#98a2b3;\n}\n#annular-modal input:focus,#annular-modal textarea:focus {\n  border-color:#175cff;outline:none;box-shadow:0 0 0 3px #175cff1f;\n}\n#annular-modal button,#annular-thankyou-modal button {\n  font-family:inherit;\n}\n\n#annular-modal .annular-inline-row {\n  display:flex;align-items:stretch;gap:8px;width:100%;\n}\n#annular-modal .annular-inline-row input {\n  flex:1 1 auto;width:100%;\n}\n#annular-send-otp,#annular-verify {\n  display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;\n  min-height:46px;padding:10px 14px;border:0;border-radius:25px;\n  background:#eaf0ff;color:#175cff;font-size:12px;font-weight:700;\n  white-space:nowrap;cursor:pointer;\n}\n#annular-send-otp:hover:not(:disabled),\n#annular-verify:hover:not(:disabled) {\n  background:#d9e5ff;\n}\n#annular-send-otp:disabled,#annular-verify:disabled {\n  opacity:.5;cursor:not-allowed;\n}\n#annular-otp-area {\n  margin:0 0 16px;padding:15px;border:1px solid #e4e9f2;\n  border-radius:14px;background:#f8faff;\n}\n#annular-modal #annular-otp {\n  letter-spacing:5px;font-size:17px;font-weight:700;\n}\n\n#annular-next,#annular-submit,#annular-back {\n  display:inline-flex;align-items:center;justify-content:center;\n  min-height:47px;box-sizing:border-box;padding:12px 18px;\n  border:0;border-radius:28px;font-size:14px;font-weight:700;\n  cursor:pointer;transition:background .2s,opacity .2s;\n}\n#annular-next,#annular-submit {\n  width:100%;background:#175cff;color:#fff;\n}\n#annular-next:hover:not(:disabled),\n#annular-submit:hover:not(:disabled) {\n  background:#1048d8;\n}\n#annular-next:disabled,#annular-submit:disabled {\n  opacity:.5;cursor:not-allowed;\n}\n#annular-back {\n  flex:0 0 auto;background:#f2f4f7;color:#344054;\n}\n#annular-back:hover {\n  background:#e4e7ec;\n}\n#annular-step2-actions {\n  display:flex;gap:10px;margin-top:8px;\n}\n#annular-step2-actions #annular-submit {\n  flex:1;\n}\n#annular-status {\n  margin-top:12px;color:#475569;font-size:12px;line-height:1.6;\n  overflow-wrap:anywhere;\n}\n#annular-status:empty {\n  display:none;\n}\n#annular-status.success {\n  color:#087443;\n}\n#annular-status.error {\n  color:#b42318;\n}\n\n#annular-thankyou-modal .annular-thankyou-card {\n  position:relative;width:100%;max-width:420px;box-sizing:border-box;\n  margin:auto;padding:40px 30px 30px;border:1px solid #eaecf0;\n  border-radius:22px;background:#fff;color:#171717;text-align:center;\n  box-shadow:0 24px 80px #0005;animation:annular-thankyou-in .25s ease-out;\n}\n#annular-thankyou-modal .annular-success-icon {\n  display:flex;align-items:center;justify-content:center;width:66px;height:66px;\n  margin:0 auto 20px;border:1px solid #b7ebcf;border-radius:50%;\n  background:#ecfdf3;color:#087443;font-size:34px;font-weight:700;\n}\n#annular-thankyou-modal h3 {\n  margin:0 0 12px;font-size:25px;font-weight:700;\n}\n#annular-thankyou-modal .annular-thankyou-message {\n  margin:0 auto 24px;max-width:320px;color:#667085;font-size:14px;line-height:1.8;\n}\n#annular-thankyou-modal .annular-thankyou-button {\n  width:100%;min-height:46px;padding:12px 20px;border:0;border-radius:28px;\n  background:#175cff;color:#fff;font-size:14px;font-weight:700;cursor:pointer;\n}\n#annular-thankyou-modal .annular-thankyou-button:hover {\n  background:#1048d8;\n}\n@keyframes annular-thankyou-in {\n  from {opacity:0;transform:translateY(12px) scale(.98)}\n  to {opacity:1;transform:translateY(0) scale(1)}\n}\n\n@media(max-width:600px) {\n  #annular-modal {padding:10px!important}\n  #annular-modal .annular-card {\n    max-height:calc(100vh - 20px);max-height:calc(100dvh - 20px);\n    padding:22px 17px;border-radius:17px;\n  }\n  #annular-modal h3 {font-size:22px}\n  #annular-modal .annular-description {margin-bottom:16px}\n  #annular-modal input,#annular-modal textarea {font-size:16px}\n  #annular-modal .annular-inline-row {gap:6px}\n  #annular-send-otp,#annular-verify {padding:9px 10px;font-size:11px}\n  #annular-thankyou-modal .annular-thankyou-card {padding:36px 22px 24px}\n}\n@media(max-height:650px) {\n  #annular-modal {align-items:flex-start!important;padding:10px!important}\n  #annular-modal .annular-card {\n    max-height:calc(100vh - 20px);max-height:calc(100dvh - 20px);\n    margin:0 auto;padding-top:18px;padding-bottom:18px;\n  }\n  #annular-modal .annular-field {margin-bottom:12px}\n}\n<\/style>\n\n<!-- OPEN BUTTON -->\n\n\n<!-- CONSULTATION POPUP -->\n<div id=\"annular-modal\" role=\"dialog\" aria-modal=\"true\"\n     aria-labelledby=\"annular-title\" aria-hidden=\"true\">\n  <div class=\"annular-card\">\n    <button id=\"annular-close\" type=\"button\" aria-label=\"Close form\">\u00d7<\/button>\n\n    <h3 id=\"annular-title\">Build Your Team<\/h3>\n    <p class=\"annular-description\">\n      Share your requirements and our team will get in touch.\n    <\/p>\n\n    <div class=\"annular-progress\" aria-label=\"Form progress\">\n      <div id=\"annular-progress-1\" class=\"annular-progress-line active\"><\/div>\n      <div id=\"annular-progress-2\" class=\"annular-progress-line\"><\/div>\n    <\/div>\n\n    <form id=\"annular-form\">\n      <!-- STEP 1 -->\n      <section id=\"annular-screen-1\" class=\"annular-screen\">\n        <div class=\"annular-step-label\">Step 1 of 2<\/div>\n\n        <div class=\"annular-field\">\n          <label for=\"annular-name\">Full Name *<\/label>\n          <input id=\"annular-name\" name=\"user_name\" type=\"text\"\n                 placeholder=\"Enter your full name\" autocomplete=\"name\"\n                 maxlength=\"120\" required>\n        <\/div>\n\n        <div class=\"annular-field\">\n          <label for=\"annular-email\">Email *<\/label>\n          <div class=\"annular-inline-row\">\n            <input id=\"annular-email\" name=\"user_email\" type=\"email\"\n                   placeholder=\"Enter your email address\" autocomplete=\"email\"\n                   maxlength=\"254\" required>\n            <button id=\"annular-send-otp\" type=\"button\" disabled>Send OTP<\/button>\n          <\/div>\n        <\/div>\n\n        <div id=\"annular-otp-area\" hidden>\n          <div class=\"annular-field\">\n            <label for=\"annular-otp\">Enter Email OTP *<\/label>\n            <div class=\"annular-inline-row\">\n              <input id=\"annular-otp\" name=\"otp\" type=\"text\"\n                     inputmode=\"numeric\" autocomplete=\"one-time-code\"\n                     maxlength=\"6\" pattern=\"[0-9]{6}\" placeholder=\"6-digit OTP\">\n              <button id=\"annular-verify\" type=\"button\">Verify<\/button>\n            <\/div>\n          <\/div>\n          <p style=\"margin:0;color:#667085;font-size:12px;line-height:1.6\">\n            Check your inbox and spam folder for the verification code.\n          <\/p>\n        <\/div>\n\n        <button id=\"annular-next\" type=\"button\" disabled style=\"margin-top:8px\">\n          Continue \u2192\n        <\/button>\n      <\/section>\n\n      <!-- STEP 2 -->\n      <section id=\"annular-screen-2\" class=\"annular-screen\" hidden>\n        <div class=\"annular-step-label\">Step 2 of 2<\/div>\n        <p style=\"margin:0 0 17px;color:#667085;font-size:13px;line-height:1.6\">\n          Your email is verified. Tell us a little more about your requirements.\n        <\/p>\n\n        <div class=\"annular-field\">\n          <label for=\"annular-mobile\">Mobile Number *<\/label>\n          <input id=\"annular-mobile\" name=\"user_mobile\" type=\"tel\"\n                 placeholder=\"Enter your mobile number\" autocomplete=\"tel\"\n                 maxlength=\"20\" pattern=\"[+]?[0-9 ()-]{7,20}\"\n                 title=\"Enter a valid mobile number.\" required>\n        <\/div>\n\n        <div class=\"annular-field\">\n          <label for=\"annular-help\">How Can We Help? *<\/label>\n          <textarea id=\"annular-help\" name=\"message\"\n                    placeholder=\"Tell us about your project or requirements\"\n                    maxlength=\"4000\" required><\/textarea>\n        <\/div>\n\n        <div id=\"annular-step2-actions\">\n          <button id=\"annular-back\" type=\"button\">\u2190 Back<\/button>\n          <button id=\"annular-submit\" type=\"submit\" disabled>Submit Enquiry<\/button>\n        <\/div>\n      <\/section>\n\n      <div id=\"annular-status\" role=\"status\" aria-live=\"polite\"><\/div>\n    <\/form>\n  <\/div>\n<\/div>\n\n<!-- THANK-YOU POPUP -->\n<div id=\"annular-thankyou-modal\" role=\"dialog\" aria-modal=\"true\"\n     aria-labelledby=\"annular-thankyou-title\"\n     aria-describedby=\"annular-thankyou-description\" aria-hidden=\"true\">\n  <div class=\"annular-thankyou-card\">\n    <button id=\"annular-thankyou-close\" type=\"button\"\n            aria-label=\"Close thank-you message\">\u00d7<\/button>\n\n    <div class=\"annular-success-icon\" aria-hidden=\"true\">\u2713<\/div>\n    <h3 id=\"annular-thankyou-title\">Thank You!<\/h3>\n    <p id=\"annular-thankyou-description\" class=\"annular-thankyou-message\">\n      Your consultation request has been submitted successfully.\n      Our team will review your requirements and get in touch with you soon.\n    <\/p>\n    <button id=\"annular-thankyou-done\" type=\"button\"\n            class=\"annular-thankyou-button\">Done<\/button>\n  <\/div>\n<\/div>\n\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/@emailjs\/browser@4\/dist\/email.min.js\"><\/script>\n\n<script>\n(() => {\n  \"use strict\";\n\n  \/* EMAILJS SETTINGS *\/\n  const SERVICE_ID = \"service_56m8mns\";\n  const PUBLIC_KEY = \"7krsXzZ1B4qnPrCGC\";\n  const OTP_TEMPLATE_ID = \"template_6r4w7s6\";\n  const ENQUIRY_TEMPLATE_ID = \"template_ol5pw49\";\n\n  \/* WEBSITE DETECTION *\/\n  const hostname = window.location.hostname.toLowerCase().replace(\/\\.$\/, \"\");\n\n  const isPods = [\n    \"pods.annulartechnologies.com\",\n    \"www.pods.annulartechnologies.com\"\n  ].includes(hostname);\n\n  const isAnnular = [\n    \"annulartechnologies.com\",\n    \"www.annulartechnologies.com\",\n    \"web.annulartechnologies.com\"\n  ].includes(hostname);\n\n  const $ = id => document.getElementById(id);\n\n  const openButton = $(\"annular-open\") || { addEventListener: () => {}, focus: () => {} };\n  let currentServiceContext = \"Execution as a Service\";\n  let currentTitleContext = \"Build Your Team\";\n  const modal = $(\"annular-modal\");\n  const thankyouModal = $(\"annular-thankyou-modal\");\n  const form = $(\"annular-form\");\n\n  const nameInput = $(\"annular-name\");\n  const emailInput = $(\"annular-email\");\n  const mobileInput = $(\"annular-mobile\");\n  const helpInput = $(\"annular-help\");\n  const otpArea = $(\"annular-otp-area\");\n  const otpInput = $(\"annular-otp\");\n\n  const sendButton = $(\"annular-send-otp\");\n  const verifyButton = $(\"annular-verify\");\n  const nextButton = $(\"annular-next\");\n  const backButton = $(\"annular-back\");\n  const submitButton = $(\"annular-submit\");\n  const status = $(\"annular-status\");\n\n  let currentOTP = \"\";\n  let verifiedEmail = \"\";\n  let otpExpiresAt = 0;\n  let otpAttempts = 0;\n  let resendAvailableAt = 0;\n  let resendTimer = null;\n  let sendingOTP = false;\n  let sendingEnquiry = false;\n  let requestVersion = 0;\n  let previousFocus = null;\n  let previousBodyOverflow = \"\";\n  let previousHtmlOverflow = \"\";\n\n  \/* Move popups outside Avada containers *\/\n  document.body.appendChild(modal);\n  document.body.appendChild(thankyouModal);\n\n  function setStatus(message, type = \"\") {\n    status.textContent = message;\n    status.className = type;\n  }\n\n  function getEmail() {\n    return emailInput.value.trim().toLowerCase();\n  }\n\n  function emailJSReady() {\n    return Boolean(window.emailjs &&\n      typeof window.emailjs.send === \"function\");\n  }\n\n  if (emailJSReady()) {\n    window.emailjs.init({ publicKey: PUBLIC_KEY });\n  } else {\n    setStatus(\"Email service failed to load. Refresh the page and try again.\", \"error\");\n  }\n\n  \/* Enable OTP only when the email is valid *\/\n  function updateSendButton() {\n    const validEmail =\n      emailInput.value.trim() !== \"\" && emailInput.checkValidity();\n\n    const coolingDown = Date.now() < resendAvailableAt;\n\n    sendButton.disabled =\n      !validEmail || sendingOTP || sendingEnquiry || coolingDown;\n  }\n\n  \/* Enable Continue only when name and verified email are valid *\/\n  function updateContinueButton() {\n    const nameValid = nameInput.value.trim().length > 0;\n\n    const verificationValid =\n      verifiedEmail !== \"\" &&\n      verifiedEmail === getEmail() &&\n      Date.now() < otpExpiresAt;\n\n    nextButton.disabled = !(\n      nameValid && verificationValid && !sendingEnquiry\n    );\n  }\n\n  \/*\n   * IMPORTANT FIX:\n   * Submit is enabled only when:\n   * 1. Email has been verified and OTP is not expired.\n   * 2. Mobile number is valid.\n   * 3. Message is not empty.\n   * 4. No enquiry is currently being submitted.\n   *\/\n  function updateSubmitButton() {\n    const verificationValid =\n      verifiedEmail !== \"\" &&\n      verifiedEmail === getEmail() &&\n      currentOTP !== \"\" &&\n      Date.now() < otpExpiresAt;\n\n    const mobileValid =\n      mobileInput.value.trim() !== \"\" &&\n      mobileInput.checkValidity();\n\n    const messageValid =\n      helpInput.value.trim().length > 0;\n\n    submitButton.disabled = !(\n      verificationValid &&\n      mobileValid &&\n      messageValid &&\n      !sendingEnquiry\n    );\n  }\n\n  function lockPageScroll() {\n    previousBodyOverflow = document.body.style.overflow;\n    previousHtmlOverflow = document.documentElement.style.overflow;\n\n    document.documentElement.classList.add(\"annular-popup-open\");\n    document.body.classList.add(\"annular-popup-open\");\n\n    document.documentElement.style.overflow = \"hidden\";\n    document.body.style.overflow = \"hidden\";\n  }\n\n  function unlockPageScroll() {\n    document.documentElement.classList.remove(\"annular-popup-open\");\n    document.body.classList.remove(\"annular-popup-open\");\n\n    document.documentElement.style.overflow = previousHtmlOverflow;\n    document.body.style.overflow = previousBodyOverflow;\n  }\n\n  function openModal() {\n    previousFocus = document.activeElement;\n    lockPageScroll();\n\n    modal.classList.add(\"is-open\");\n    modal.setAttribute(\"aria-hidden\", \"false\");\n\n    requestAnimationFrame(() =>\n      nameInput.focus({ preventScroll: true })\n    );\n  }\n\n  function closeModal() {\n    modal.classList.remove(\"is-open\");\n    modal.setAttribute(\"aria-hidden\", \"true\");\n\n    if (!thankyouModal.classList.contains(\"is-open\")) {\n      unlockPageScroll();\n    }\n\n    if (previousFocus && typeof previousFocus.focus === \"function\") {\n      previousFocus.focus({ preventScroll: true });\n    }\n  }\n\n  \n  function openModalWithConfig(title, service) {\n    if (title) {\n      currentTitleContext = title;\n      const titleEl = $(\"annular-title\");\n      if (titleEl) titleEl.textContent = title;\n    }\n    if (service) {\n      currentServiceContext = service;\n    }\n    openModal();\n  }\n\n  \/\/ Attach global click listener for trigger buttons\n  const triggerList = [\".annular-eaas-btn-primary\",\"a[href=\\\"#lets-talk\\\"]\",\".annular-eaas-btn-secondary\",\"a[href*=\\\"\/contact\/\\\"]\"];\n  document.addEventListener(\"click\", function(event) {\n    const selectorStr = triggerList.join(\", \");\n    if (!selectorStr) return;\n    const trigger = event.target.closest(selectorStr);\n    if (trigger) {\n      event.preventDefault();\n      \/\/ Extract clean text from clicked button (stripping arrow icons like \u2192, \u2197)\n      const rawText = (trigger.innerText || \"\").replace(\/[\\u2190-\\u21FF\\u27F0-\\u27FF\\u2900-\\u297F\u2192\u2197\u2190\u25ba]\/g, \"\").trim();\n      const customTitle = trigger.getAttribute(\"data-modal-title\") || \n                          (rawText.length >= 3 && rawText.length <= 60 ? rawText : \"Build Your Team\");\n      const customService = trigger.getAttribute(\"data-service\") || \"Execution as a Service\";\n      openModalWithConfig(customTitle, customService);\n    }\n  });\n\n  openButton.addEventListener(\"click\", openModal);\n  $(\"annular-close\").addEventListener(\"click\", closeModal);\n\n  modal.addEventListener(\"click\", event => {\n    if (event.target === modal) closeModal();\n  });\n\n  function showThankYou() {\n    modal.classList.remove(\"is-open\");\n    modal.setAttribute(\"aria-hidden\", \"true\");\n\n    thankyouModal.classList.add(\"is-open\");\n    thankyouModal.setAttribute(\"aria-hidden\", \"false\");\n\n    requestAnimationFrame(() =>\n      $(\"annular-thankyou-done\").focus({ preventScroll: true })\n    );\n  }\n\n  function closeThankYou() {\n    thankyouModal.classList.remove(\"is-open\");\n    thankyouModal.setAttribute(\"aria-hidden\", \"true\");\n\n    unlockPageScroll();\n    openButton.focus({ preventScroll: true });\n  }\n\n  $(\"annular-thankyou-close\").addEventListener(\"click\", closeThankYou);\n  $(\"annular-thankyou-done\").addEventListener(\"click\", closeThankYou);\n\n  thankyouModal.addEventListener(\"click\", event => {\n    if (event.target === thankyouModal) closeThankYou();\n  });\n\n  document.addEventListener(\"keydown\", event => {\n    if (event.key !== \"Escape\") return;\n\n    if (thankyouModal.classList.contains(\"is-open\")) {\n      closeThankYou();\n    } else if (modal.classList.contains(\"is-open\")) {\n      closeModal();\n    }\n  });\n\n  function clearResendTimer() {\n    if (resendTimer) {\n      clearInterval(resendTimer);\n      resendTimer = null;\n    }\n  }\n\n  function resetVerification(message = \"\", type = \"\") {\n    requestVersion++;\n\n    currentOTP = \"\";\n    verifiedEmail = \"\";\n    otpExpiresAt = 0;\n    otpAttempts = 0;\n\n    otpArea.hidden = true;\n    otpInput.value = \"\";\n\n    verifyButton.disabled = false;\n\n    clearResendTimer();\n\n    updateSendButton();\n    updateContinueButton();\n    updateSubmitButton();\n\n    setStatus(message, type);\n  }\n\n  \/* Email edits invalidate the previous verification *\/\n  emailInput.addEventListener(\"input\", () => {\n    if (currentOTP || verifiedEmail || !otpArea.hidden) {\n      resetVerification(\n        \"Email changed. Please request a new OTP.\",\n        \"error\"\n      );\n    } else {\n      updateSendButton();\n      updateContinueButton();\n      updateSubmitButton();\n    }\n  });\n\n  nameInput.addEventListener(\"input\", updateContinueButton);\n\n  \/* CRITICAL FIX: update Submit whenever these fields change *\/\n  mobileInput.addEventListener(\"input\", updateSubmitButton);\n  mobileInput.addEventListener(\"change\", updateSubmitButton);\n  helpInput.addEventListener(\"input\", updateSubmitButton);\n  helpInput.addEventListener(\"change\", updateSubmitButton);\n\n  function generateOTP() {\n    if (!window.crypto || !window.crypto.getRandomValues) {\n      throw new Error(\"Secure random number generation is unavailable.\");\n    }\n\n    const values = new Uint32Array(1);\n    window.crypto.getRandomValues(values);\n\n    return String(values[0] % 1000000).padStart(6, \"0\");\n  }\n\n  \/* SEND OTP *\/\n  sendButton.addEventListener(\"click\", async () => {\n    if (!emailJSReady()) {\n      setStatus(\"Email service is unavailable. Please refresh and try again.\", \"error\");\n      return;\n    }\n\n    if (!emailInput.checkValidity()) {\n      emailInput.reportValidity();\n      updateSendButton();\n      return;\n    }\n\n    if (sendingOTP || sendingEnquiry) return;\n\n    if (Date.now() < resendAvailableAt) {\n      setStatus(\n        \"Please wait \" +\n        Math.ceil((resendAvailableAt - Date.now()) \/ 1000) +\n        \" seconds before requesting another OTP.\",\n        \"error\"\n      );\n\n      updateSendButton();\n      return;\n    }\n\n    const email = getEmail();\n    const version = ++requestVersion;\n\n    sendingOTP = true;\n    updateSendButton();\n\n    currentOTP = \"\";\n    verifiedEmail = \"\";\n    otpExpiresAt = 0;\n    otpAttempts = 0;\n\n    otpArea.hidden = true;\n    otpInput.value = \"\";\n\n    updateContinueButton();\n    updateSubmitButton();\n\n    setStatus(\"Sending OTP...\");\n\n    try {\n      const otp = generateOTP();\n\n      await window.emailjs.send(\n        SERVICE_ID,\n        OTP_TEMPLATE_ID,\n        {\n          email: email,\n          passcode: otp,\n          time: new Date(Date.now() + 5 * 60 * 1000)\n            .toLocaleTimeString()\n        }\n      );\n\n      if (version !== requestVersion) return;\n\n      if (getEmail() !== email) {\n        setStatus(\"Email changed. Please request a new OTP.\", \"error\");\n        return;\n      }\n\n      currentOTP = otp;\n      otpExpiresAt = Date.now() + 5 * 60 * 1000;\n      resendAvailableAt = Date.now() + 60000;\n\n      otpArea.hidden = false;\n\n      otpInput.focus({ preventScroll: true });\n\n      setStatus(\"OTP sent. Please check your email.\", \"success\");\n\n      clearResendTimer();\n\n      \/*\n       * Also refresh validation periodically so an expired OTP\n       * cannot leave the Submit button enabled.\n       *\/\n      resendTimer = setInterval(() => {\n        updateSendButton();\n        updateContinueButton();\n        updateSubmitButton();\n\n        if (Date.now() >= resendAvailableAt) {\n          resendAvailableAt = 0;\n          updateSendButton();\n        }\n\n        if (Date.now() >= otpExpiresAt) {\n          clearResendTimer();\n\n          if (verifiedEmail) {\n            verifiedEmail = \"\";\n            updateContinueButton();\n            updateSubmitButton();\n\n            setStatus(\n              \"OTP expired. Please request a new OTP to continue.\",\n              \"error\"\n            );\n          } else {\n            updateSubmitButton();\n          }\n        }\n      }, 1000);\n\n    } catch (error) {\n      console.error(\"OTP EmailJS error:\", error);\n\n      setStatus(\n        \"Unable to send OTP. Check your EmailJS service and OTP template.\",\n        \"error\"\n      );\n\n    } finally {\n      sendingOTP = false;\n      updateSendButton();\n      updateContinueButton();\n      updateSubmitButton();\n    }\n  });\n\n  \/* VERIFY OTP *\/\n  verifyButton.addEventListener(\"click\", () => {\n    const email = getEmail();\n    const enteredOTP = otpInput.value.trim();\n\n    if (!currentOTP || Date.now() >= otpExpiresAt) {\n      resetVerification(\"OTP expired. Please request a new OTP.\", \"error\");\n      return;\n    }\n\n    if (otpAttempts >= 5) {\n      resetVerification(\"Too many attempts. Please request a new OTP.\", \"error\");\n      return;\n    }\n\n    otpAttempts++;\n\n    if (!\/^\\d{6}$\/.test(enteredOTP) || enteredOTP !== currentOTP) {\n      verifiedEmail = \"\";\n\n      updateContinueButton();\n      updateSubmitButton();\n\n      if (otpAttempts >= 5) {\n        resetVerification(\n          \"Too many attempts. Please request a new OTP.\",\n          \"error\"\n        );\n      } else {\n        setStatus(\"Incorrect OTP. Please try again.\", \"error\");\n      }\n\n      return;\n    }\n\n    verifiedEmail = email;\n    verifyButton.disabled = true;\n\n    updateContinueButton();\n    updateSubmitButton();\n\n    setStatus(\"Email verified successfully.\", \"success\");\n  });\n\n  \/* STEP NAVIGATION *\/\n  nextButton.addEventListener(\"click\", () => {\n    if (!nameInput.checkValidity()) {\n      nameInput.reportValidity();\n      return;\n    }\n\n    if (!verifiedEmail || verifiedEmail !== getEmail()) {\n      setStatus(\"Please verify your email before continuing.\", \"error\");\n      return;\n    }\n\n    if (Date.now() >= otpExpiresAt) {\n      resetVerification(\"OTP expired. Please request a new OTP.\", \"error\");\n      return;\n    }\n\n    $(\"annular-screen-1\").hidden = true;\n    $(\"annular-screen-2\").hidden = false;\n\n    $(\"annular-progress-2\").classList.add(\"active\");\n\n    setStatus(\"\");\n\n    updateSubmitButton();\n\n    mobileInput.focus({ preventScroll: true });\n  });\n\n  backButton.addEventListener(\"click\", () => {\n    $(\"annular-screen-2\").hidden = true;\n    $(\"annular-screen-1\").hidden = false;\n\n    $(\"annular-progress-2\").classList.remove(\"active\");\n\n    setStatus(\"\");\n\n    updateContinueButton();\n    updateSubmitButton();\n  });\n\n  \/* SUBMIT ENQUIRY *\/\n  form.addEventListener(\"submit\", async event => {\n    event.preventDefault();\n\n    if (sendingEnquiry) return;\n\n    \/*\n     * Revalidate at submission time instead of trusting\n     * the button's disabled state alone.\n     *\/\n    updateSubmitButton();\n\n    if (!form.checkValidity()) {\n      form.reportValidity();\n      return;\n    }\n\n    const name = nameInput.value.trim();\n    const email = getEmail();\n    const mobile = mobileInput.value.trim();\n    const message = helpInput.value.trim();\n\n    if (!name || !email || !mobile || !message) {\n      setStatus(\n        \"Name, email, mobile number, and message are required.\",\n        \"error\"\n      );\n      return;\n    }\n\n    if (\n      !verifiedEmail ||\n      verifiedEmail !== email ||\n      !currentOTP ||\n      Date.now() >= otpExpiresAt\n    ) {\n      resetVerification(\n        \"Please verify your email before submitting.\",\n        \"error\"\n      );\n\n      $(\"annular-screen-2\").hidden = true;\n      $(\"annular-screen-1\").hidden = false;\n      $(\"annular-progress-2\").classList.remove(\"active\");\n\n      return;\n    }\n\n    if (!mobileInput.checkValidity()) {\n      mobileInput.reportValidity();\n      return;\n    }\n\n    if (!emailJSReady()) {\n      setStatus(\"Email service is unavailable. Please try again.\", \"error\");\n      return;\n    }\n\n    sendingEnquiry = true;\n\n    updateSubmitButton();\n    updateSendButton();\n\n    setStatus(\"Submitting your enquiry...\");\n\n    try {\n      await window.emailjs.send(\n        SERVICE_ID,\n        ENQUIRY_TEMPLATE_ID,\n        {\n          \/*\n           * Annular domain: company fields are populated.\n           * PODS domain: company fields are blank.\n           *\/\n          website_name: isAnnular ? \"Annular Technologies\" : \"\",\n          company_name: isAnnular ? \"Annular Technologies\" : \"\",\n\n          user_name: name,\n          user_email: email,\n          user_mobile: mobile,\n          service_name: currentServiceContext,\n          service_title: currentTitleContext,\n          message: \"[Service: \" + currentServiceContext + \" | \" + currentTitleContext + \"]\\n\" + message\n        }\n      );\n\n      form.reset();\n\n      clearResendTimer();\n\n      currentOTP = \"\";\n      verifiedEmail = \"\";\n      otpExpiresAt = 0;\n      otpAttempts = 0;\n      resendAvailableAt = 0;\n\n      $(\"annular-screen-1\").hidden = false;\n      $(\"annular-screen-2\").hidden = true;\n\n      $(\"annular-progress-1\").classList.add(\"active\");\n      $(\"annular-progress-2\").classList.remove(\"active\");\n\n      otpArea.hidden = true;\n      verifyButton.disabled = false;\n\n      updateSendButton();\n      updateContinueButton();\n      updateSubmitButton();\n\n      setStatus(\"\");\n\n      showThankYou();\n\n    } catch (error) {\n      console.error(\"Consultation EmailJS error:\", error);\n\n      setStatus(\n        \"Unable to submit your enquiry. Check your EmailJS template settings and try again.\",\n        \"error\"\n      );\n\n    } finally {\n      sendingEnquiry = false;\n\n      updateSendButton();\n      updateContinueButton();\n      updateSubmitButton();\n    }\n  });\n\n  \/* INITIAL STATE *\/\n  updateSendButton();\n  updateContinueButton();\n  updateSubmitButton();\n\n})();\n<\/script>\n<\/div><\/div><\/div><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"100-width.php","meta":{"_acf_changed":false,"om_disable_all_campaigns":false,"footnotes":""},"class_list":["post-1691","page","type-page","status-publish","hentry"],"acf":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/web.annulartechnologies.com\/staging\/wp-json\/wp\/v2\/pages\/1691","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/web.annulartechnologies.com\/staging\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/web.annulartechnologies.com\/staging\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/web.annulartechnologies.com\/staging\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/web.annulartechnologies.com\/staging\/wp-json\/wp\/v2\/comments?post=1691"}],"version-history":[{"count":22,"href":"https:\/\/web.annulartechnologies.com\/staging\/wp-json\/wp\/v2\/pages\/1691\/revisions"}],"predecessor-version":[{"id":2606,"href":"https:\/\/web.annulartechnologies.com\/staging\/wp-json\/wp\/v2\/pages\/1691\/revisions\/2606"}],"wp:attachment":[{"href":"https:\/\/web.annulartechnologies.com\/staging\/wp-json\/wp\/v2\/media?parent=1691"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}