{"id":1236,"date":"2026-04-05T14:43:04","date_gmt":"2026-04-05T19:43:04","guid":{"rendered":"https:\/\/driving-firefly-dev.10web.cloud\/platform\/regulatory-intelligence\/"},"modified":"2026-06-02T21:30:18","modified_gmt":"2026-06-03T02:30:18","slug":"regulatory-intelligence","status":"publish","type":"page","link":"https:\/\/driving-firefly-dev.10web.cloud\/en\/ai-water-treatment\/regulatory-intelligence\/","title":{"rendered":"Regulatory Intelligence"},"content":{"rendered":"\n<style>\n\/* ---- prevent the full-bleed breakout from creating horizontal scroll ---- *\/\nhtml, body { overflow-x: hidden; }\n\/* ---- SCOPED TOKENS ---- *\/\n.afx {\n  --af-navy:   #0B2A45;\n  --af-navy-2: #103A5E;\n  --af-cyan:   #2EC4D4;\n  --af-cyan-d: #1FA9B8;\n  --af-ice:    #EEF6F8;\n  --af-ink:    #1a2733;\n  --af-mut:    #5b6b78;\n  --af-line:   #dde7ec;\n  --af-white:  #ffffff;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif;\n  color: var(--af-ink);\n  -webkit-font-smoothing: antialiased;\n  \/* ---- FULL-BLEED: scrollbar-safe, parent-independent ---- *\/\n  width: 100vw;\n  max-width: 100vw;\n  margin-left: calc(50% - 50vw);\n  margin-right: calc(50% - 50vw);\n  overflow-x: clip;          \/* contain the breakout, no horizontal scroll *\/\n}\n.afx * { box-sizing: border-box; }\n.afx-wrap { width: 100%; max-width: 1100px; margin: 0 auto; padding: 0 clamp(20px, 5vw, 48px); }\n\n\/* ---- SCROLL REVEAL ---- *\/\n.afx-reveal { opacity: 0; transform: translateY(24px); transition: opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,1); }\n.afx-reveal.in { opacity: 1; transform: none; }\n.afx-reveal.d1 { transition-delay: .08s; }\n.afx-reveal.d2 { transition-delay: .16s; }\n.afx-reveal.d3 { transition-delay: .24s; }\n.afx-reveal.d4 { transition-delay: .32s; }\n@media (prefers-reduced-motion: reduce) {\n  .afx-reveal { opacity: 1; transform: none; transition: none; }\n}\n\n\/* ---- HERO ---- *\/\n.afx-hero {\n  position: relative;\n  min-height: 480px;\n  display: flex;\n  align-items: center;\n  padding: 0;\n  overflow: hidden;\n  background:\n    linear-gradient(120deg, rgba(11,42,69,.94) 0%, rgba(16,58,94,.86) 55%, rgba(31,169,184,.62) 100%),\n    url('\/wp-content\/themes\/aquaforge-child\/assets\/img\/stock\/treatment-tanks.jpg') center\/cover no-repeat;\n  color: #fff;\n}\n\/* animated water-line shimmer *\/\n.afx-hero::after {\n  content: \"\";\n  position: absolute; inset: 0;\n  background: radial-gradient(circle at 80% 20%, rgba(46,196,212,.25), transparent 45%);\n  animation: afxGlow 9s ease-in-out infinite alternate;\n  pointer-events: none;\n}\n@keyframes afxGlow { from { opacity:.4; transform: translateY(0); } to { opacity:.9; transform: translateY(-12px); } }\n.afx-badge {\n  display:inline-block; font-size:12px; font-weight:700; letter-spacing:.09em;\n  text-transform:uppercase; color:var(--af-cyan); margin-bottom:16px;\n  position:relative; padding-left:18px;\n}\n.afx-badge::before {\n  content:\"\"; position:absolute; left:0; top:50%; width:9px; height:9px;\n  margin-top:-4.5px; border-radius:50%; background:var(--af-cyan);\n  box-shadow:0 0 0 0 rgba(46,196,212,.7); animation: afxPulse 2s infinite;\n}\n@keyframes afxPulse {\n  0%{box-shadow:0 0 0 0 rgba(46,196,212,.6);}\n  70%{box-shadow:0 0 0 10px rgba(46,196,212,0);}\n  100%{box-shadow:0 0 0 0 rgba(46,196,212,0);}\n}\n.afx .afx-hero h1,\n.afx-hero h1 { color:#ffffff !important; font-size:48px; line-height:1.12; font-weight:800; margin:0 0 16px; max-width:760px; }\n\/* keep every inline part of the H1 white EXCEPT the animated typed word *\/\n.afx-hero h1 *:not(.afx-typed) { color:#ffffff !important; }\n.afx .afx-hero h1 .afx-typed,\n.afx-hero h1 .afx-typed { color:var(--af-cyan) !important; }\n.afx-hero p.lead { font-size:19px; line-height:1.6; color:#dbe7ee; margin:0 0 30px; max-width:560px; }\n.afx-hero p.lead strong { color:#ffffff !important; }\n.afx-hero .afx-typed { color:var(--af-cyan); border-right:2px solid var(--af-cyan); padding-right:2px; }\n\n\/* ---- BUTTONS ---- *\/\n.afx-btn {\n  display:inline-flex; align-items:center; gap:8px; cursor:pointer;\n  font-weight:600; font-size:15px; border-radius:8px; padding:13px 24px;\n  text-decoration:none; border:1.5px solid transparent; transition:all .22s ease;\n}\n.afx-btn-primary { background:var(--af-cyan); color:var(--af-navy); }\n.afx-btn-primary:hover { background:var(--af-cyan-d); transform:translateY(-2px); box-shadow:0 10px 28px rgba(46,196,212,.35); color:var(--af-navy); }\n.afx-btn-ghost { background:transparent; color:#fff; border-color:rgba(255,255,255,.6); }\n.afx-btn-ghost:hover { background:#fff; color:var(--af-navy); transform:translateY(-2px); }\n.afx-btn-row { display:flex; gap:14px; flex-wrap:wrap; }\n\n\/* ---- STAT STRIP ---- *\/\n.afx-stats { background:var(--af-navy); padding:46px 0; }\n.afx-stats-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; text-align:center; }\n.afx-stat .num { font-size:42px; font-weight:800; color:var(--af-cyan); line-height:1; }\n.afx-stat .lbl { font-size:13.5px; color:#b9c9d4; margin-top:8px; line-height:1.45; }\n\n\/* ---- SECTION SHELL ---- *\/\n.afx-sec { padding:78px 0; }\n.afx-sec.ice { background:var(--af-ice); }\n.afx-h2 { font-size:32px; font-weight:800; text-align:center; margin:0 0 10px; letter-spacing:-.01em; }\n.afx-sub { text-align:center; color:var(--af-mut); font-size:16px; max-width:600px; margin:0 auto 44px; line-height:1.6; }\n\n\/* ---- USE-CASE TABS ---- *\/\n.afx-tabs { display:flex; gap:8px; justify-content:center; flex-wrap:wrap; margin-bottom:34px; }\n.afx-tab {\n  border:1.5px solid var(--af-line); background:#fff; color:var(--af-mut);\n  border-radius:999px; padding:11px 22px; font-size:14.5px; font-weight:600;\n  cursor:pointer; transition:all .2s; font-family:inherit;\n}\n.afx-tab:hover { border-color:var(--af-cyan); color:var(--af-navy); }\n.afx-tab.on { background:var(--af-navy); border-color:var(--af-navy); color:#fff; }\n.afx-panel { display:none; animation:afxFade .4s ease; }\n.afx-panel.on { display:block; }\n@keyframes afxFade { from{opacity:0;transform:translateY(10px);} to{opacity:1;transform:none;} }\n.afx-uc {\n  background:#fff; border:1px solid var(--af-line); border-radius:16px;\n  padding:36px; box-shadow:0 2px 18px rgba(11,42,69,.05);\n}\n.afx-uc h3 { font-size:24px; font-weight:700; margin:0 0 22px; line-height:1.3; }\n.afx-uc-step { display:flex; gap:16px; padding:14px 0; border-bottom:1px solid var(--af-line); }\n.afx-uc-step:last-of-type { border-bottom:none; }\n.afx-uc-tag {\n  flex:0 0 130px; font-size:11.5px; font-weight:700; letter-spacing:.07em;\n  text-transform:uppercase; color:var(--af-cyan-d); padding-top:2px;\n}\n.afx-uc-txt { color:var(--af-ink); font-size:15px; line-height:1.62; }\n.afx-uc-pill {\n  display:inline-block; margin-top:24px; background:var(--af-ice);\n  border:1px solid var(--af-line); border-radius:999px; padding:9px 18px;\n  font-size:14px; font-weight:600; color:var(--af-navy);\n}\n.afx-uc-pill b { color:var(--af-cyan-d); }\n\n\/* ---- ROI CALCULATOR ---- *\/\n.afx-calc {\n  background:linear-gradient(135deg,#fff 0%, #f6fbfc 100%);\n  border:1px solid var(--af-line); border-radius:20px; padding:40px;\n  box-shadow:0 8px 40px rgba(11,42,69,.08); max-width:760px; margin:0 auto;\n}\n.afx-calc-grid { display:grid; grid-template-columns:1.2fr 1fr; gap:36px; align-items:center; }\n.afx-ctrl { margin-bottom:24px; }\n.afx-ctrl label { display:flex; justify-content:space-between; font-size:14px; font-weight:600; color:var(--af-ink); margin-bottom:10px; }\n.afx-ctrl label span { color:var(--af-cyan-d); font-weight:700; }\n.afx-range { -webkit-appearance:none; appearance:none; width:100%; height:6px; border-radius:999px; background:var(--af-line); outline:none; }\n.afx-range::-webkit-slider-thumb {\n  -webkit-appearance:none; appearance:none; width:22px; height:22px; border-radius:50%;\n  background:var(--af-cyan); border:3px solid #fff; box-shadow:0 2px 8px rgba(11,42,69,.25); cursor:pointer; transition:transform .15s;\n}\n.afx-range::-webkit-slider-thumb:hover { transform:scale(1.15); }\n.afx-range::-moz-range-thumb {\n  width:22px; height:22px; border-radius:50%; background:var(--af-cyan);\n  border:3px solid #fff; box-shadow:0 2px 8px rgba(11,42,69,.25); cursor:pointer;\n}\n.afx-result {\n  background:var(--af-navy); border-radius:16px; padding:30px; text-align:center; color:#fff;\n}\n.afx-result .small { font-size:12.5px; text-transform:uppercase; letter-spacing:.08em; color:#9fb6c4; }\n.afx-result .big { font-size:46px; font-weight:800; color:var(--af-cyan); line-height:1.05; margin:8px 0 4px; }\n.afx-result .hrs { font-size:14px; color:#c7d6df; }\n.afx-result .note { font-size:12px; color:#86a0b0; margin-top:16px; line-height:1.5; }\n\n\/* ---- PROCESS STEPS ---- *\/\n.afx-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; position:relative; }\n.afx-step {\n  background:#fff; border:1px solid var(--af-line); border-radius:16px; padding:30px 26px;\n  text-align:center; transition:transform .25s, box-shadow .25s; position:relative;\n}\n.afx-step:hover { transform:translateY(-6px); box-shadow:0 14px 34px rgba(11,42,69,.1); }\n.afx-step .n {\n  width:46px; height:46px; border-radius:50%; background:var(--af-cyan); color:var(--af-navy);\n  font-weight:800; font-size:19px; display:flex; align-items:center; justify-content:center; margin:0 auto 16px;\n}\n.afx-step h3 { font-size:18px; font-weight:700; margin:0 0 10px; }\n.afx-step p { font-size:14px; color:var(--af-mut); line-height:1.6; margin:0; }\n\n\/* ---- DIFFERENTIATORS ---- *\/\n.afx-diffs { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }\n.afx-diff {\n  background:#fff; border:1px solid var(--af-line); border-left:4px solid var(--af-cyan);\n  border-radius:12px; padding:24px 26px; transition:transform .22s, box-shadow .22s;\n}\n.afx-diff:hover { transform:translateY(-4px); box-shadow:0 12px 30px rgba(11,42,69,.09); }\n.afx-diff b { display:block; font-size:16px; color:var(--af-navy); margin-bottom:6px; }\n.afx-diff p { margin:0; font-size:14.5px; color:var(--af-mut); line-height:1.6; }\n\n\/* ---- PRICING ---- *\/\n.afx-prices { display:grid; grid-template-columns:repeat(2,1fr); gap:22px; max-width:720px; margin:0 auto 30px; }\n.afx-price {\n  background:#fff; border:1.5px solid var(--af-line); border-radius:16px; padding:32px;\n  text-align:center; transition:transform .25s, box-shadow .25s, border-color .25s;\n}\n.afx-price:hover { transform:translateY(-5px); box-shadow:0 16px 38px rgba(11,42,69,.1); }\n.afx-price.feat { border-color:var(--af-cyan); position:relative; }\n.afx-price.feat::before {\n  content:\"Most popular\"; position:absolute; top:-12px; left:50%; transform:translateX(-50%);\n  background:var(--af-cyan); color:var(--af-navy); font-size:11px; font-weight:700;\n  letter-spacing:.05em; text-transform:uppercase; padding:5px 14px; border-radius:999px;\n}\n.afx-price .tier { font-size:15px; font-weight:700; color:var(--af-navy); }\n.afx-price .cost { font-size:38px; font-weight:800; color:var(--af-ink); margin:10px 0 2px; }\n.afx-price .cost span { font-size:15px; font-weight:600; color:var(--af-mut); }\n.afx-price .desc { font-size:13.5px; color:var(--af-mut); margin:6px 0 0; line-height:1.55; }\n\n\/* ---- GD TEASER ---- *\/\n.afx-gd { text-align:center; max-width:760px; margin:0 auto; }\n.afx-coming {\n  display:inline-block; background:rgba(46,196,212,.14); color:var(--af-cyan-d);\n  border:1px solid rgba(46,196,212,.4); border-radius:999px; padding:6px 16px;\n  font-size:12.5px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; margin:18px 0 26px;\n}\n.afx-flow {\n  display:flex; align-items:center; justify-content:center; gap:14px; flex-wrap:wrap; margin:28px 0;\n}\n.afx-flow-node {\n  background:#fff; border:1px solid var(--af-line); border-radius:12px; padding:16px 22px;\n  font-size:14px; font-weight:600; color:var(--af-navy);\n}\n.afx-flow-arrow { color:var(--af-cyan); font-size:22px; animation:afxNudge 1.6s ease-in-out infinite; }\n@keyframes afxNudge { 0%,100%{transform:translateX(0);} 50%{transform:translateX(5px);} }\n\n\/* ---- FINAL CTA ---- *\/\n.afx-final { background:var(--af-navy); color:#fff; padding:84px 0; text-align:center; }\n.afx-final h2 { font-size:38px; font-weight:800; color:#fff; margin:0 0 12px; }\n.afx-final p { font-size:18px; color:#cfe0e8; margin:0 0 8px; }\n\n\/* ---- FLUID TYPOGRAPHY (scales smoothly between breakpoints) ---- *\/\n.afx-hero h1 { font-size: clamp(30px, 5.2vw, 48px); }\n.afx-hero p.lead { font-size: clamp(16px, 2vw, 19px); }\n.afx-h2 { font-size: clamp(24px, 3.4vw, 32px); }\n.afx-stat .num { font-size: clamp(32px, 4.5vw, 42px); }\n.afx-result .big { font-size: clamp(36px, 5vw, 46px); }\n.afx-final h2 { font-size: clamp(27px, 4vw, 38px); }\n\n\/* ---- RESPONSIVE ---- *\/\n@media (max-width:980px){\n  .afx-wrap { max-width: 100%; }\n}\n@media (max-width:860px){\n  .afx-stats-grid { grid-template-columns:repeat(2,1fr); gap:30px 18px; }\n  .afx-calc-grid { grid-template-columns:1fr; gap:26px; }\n  .afx-steps { grid-template-columns:1fr; }\n  .afx-diffs { grid-template-columns:1fr; }\n  .afx-prices { grid-template-columns:1fr; }\n}\n@media (max-width:600px){\n  .afx-hero { padding:58px 0; min-height:auto; }\n  .afx-sec { padding:48px 0; }\n  .afx-stats { padding:38px 0; }\n  .afx-final { padding:60px 0; }\n  .afx-uc { padding:22px; }\n  .afx-uc-step { flex-direction:column; gap:4px; }\n  .afx-uc-tag { flex:none; }\n  .afx-calc { padding:22px; }\n  .afx-tabs { gap:6px; }\n  .afx-tab { padding:10px 16px; font-size:13.5px; }\n  .afx-btn-row { width:100%; }\n  .afx-btn { flex:1 1 auto; justify-content:center; }\n  .afx-flow-arrow { transform:rotate(90deg); }\n  .afx-flow { gap:10px; }\n}\n@media (max-width:420px){\n  .afx-stats-grid { grid-template-columns:1fr; gap:24px; }\n  .afx-btn { width:100%; }\n  .afx-uc h3 { font-size:20px; }\n  .afx-flow-node { width:100%; text-align:center; }\n}\n<\/style>\n\n\n<div class=\"afx\">\n\n  <!-- ============ HERO ============ -->\n  <section class=\"afx-hero\">\n    <div class=\"afx-wrap\">\n      <div class=\"afx-badge afx-reveal\">Available Now<\/div>\n      <h1 class=\"afx-reveal d1\">AI Regulatory Intelligence for Water Treatment<br>Every <span class=\"afx-typed\" id=\"afxTyped\">jurisdiction.<\/span><\/h1>\n      <p class=\"lead afx-reveal d2\">From <strong style=\"color:#fff\">400 hours<\/strong> of research to a structured compliance checklist.<\/p>\n      <div class=\"afx-btn-row afx-reveal d3\">\n        <a class=\"afx-btn afx-btn-primary\" href=\"\/en\/contact\/?type=demo\">Try the Demo &rarr;<\/a>\n        <a class=\"afx-btn afx-btn-ghost\" href=\"#afx-pricing\">See Pricing<\/a>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- ============ ANIMATED STATS ============ -->\n  <section class=\"afx-stats\">\n    <div class=\"afx-wrap\">\n      <div class=\"afx-stats-grid\">\n        <div class=\"afx-stat afx-reveal\">\n          <div class=\"num\" data-count=\"400\" data-suffix=\"h\">0<\/div>\n          <div class=\"lbl\">Manual research replaced per complex project<\/div>\n        <\/div>\n        <div class=\"afx-stat afx-reveal d1\">\n          <div class=\"num\" data-count=\"50\" data-suffix=\"+\">0<\/div>\n          <div class=\"lbl\">Languages of regulatory extraction<\/div>\n        <\/div>\n        <div class=\"afx-stat afx-reveal d2\">\n          <div class=\"num\" data-count=\"15\" data-suffix=\" min\">0<\/div>\n          <div class=\"lbl\">To act on your real compliance risk<\/div>\n        <\/div>\n        <div class=\"afx-stat afx-reveal d3\">\n          <div class=\"num\" data-count=\"100\" data-suffix=\"%\">0<\/div>\n          <div class=\"lbl\">Requirements traceable to source<\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- ============ USE CASES (TABBED) ============ -->\n  <section class=\"afx-sec\">\n    <div class=\"afx-wrap\">\n      <h2 class=\"afx-h2 afx-reveal\">Built for how AEC firms actually work<\/h2>\n      <p class=\"afx-sub afx-reveal d1\">Two moments where missing regulatory visibility costs you. Switch between them.<\/p>\n\n      <div class=\"afx-tabs afx-reveal d1\">\n        <button class=\"afx-tab on\" data-tab=\"bid\">1 &middot; Winning the bid<\/button>\n        <button class=\"afx-tab\" data-tab=\"award\">2 &middot; Delivering the contract<\/button>\n      <\/div>\n\n      <!-- Panel: Bid -->\n      <div class=\"afx-panel on\" data-panel=\"bid\">\n        <div class=\"afx-uc afx-reveal\">\n          <h3>Win bids with complete regulatory visibility<\/h3>\n          <div class=\"afx-uc-step\"><div class=\"afx-uc-tag\">Trigger<\/div><div class=\"afx-uc-txt\">You receive an RFP for a wastewater treatment upgrade. Multiple jurisdictions apply. Regulations are in different languages. The deadline is tight.<\/div><\/div>\n          <div class=\"afx-uc-step\"><div class=\"afx-uc-tag\">The Pain<\/div><div class=\"afx-uc-txt\">Engineers never have ALL the regulatory documentation when bidding. Responding without complete visibility increases liability for the firm and the project.<\/div><\/div>\n          <div class=\"afx-uc-step\"><div class=\"afx-uc-tag\">How AquaForge Helps<\/div><div class=\"afx-uc-txt\">Regulatory Intelligence scans layered jurisdictions and identifies key regulatory risks in minutes. You submit a bid backed by verified compliance intelligence.<\/div><\/div>\n          <div class=\"afx-uc-step\"><div class=\"afx-uc-tag\">Outcome<\/div><div class=\"afx-uc-txt\">Save approximately 10&ndash;12 hours per RFP response. More importantly, reduce the risk of under-scoping or missing critical requirements.<\/div><\/div>\n          <span class=\"afx-uc-pill\">Quick Check &mdash; starting at <b>$2,000\/year<\/b><\/span>\n        <\/div>\n      <\/div>\n\n      <!-- Panel: Award -->\n      <div class=\"afx-panel\" data-panel=\"award\">\n        <div class=\"afx-uc afx-reveal\">\n          <h3>The most thorough regulatory analysis your team has ever produced<\/h3>\n          <div class=\"afx-uc-step\"><div class=\"afx-uc-tag\">Trigger<\/div><div class=\"afx-uc-txt\">Contract awarded. Now you need to know exactly what&#8217;s required &mdash; every discharge limit, every monitoring obligation, every construction standard &mdash; across every applicable jurisdiction.<\/div><\/div>\n          <div class=\"afx-uc-step\"><div class=\"afx-uc-tag\">The Pain<\/div><div class=\"afx-uc-txt\">This research takes 40 to 400 hours depending on project complexity. It&#8217;s manual, fragmented across government websites in multiple languages, and the risk of missing something is real.<\/div><\/div>\n          <div class=\"afx-uc-step\"><div class=\"afx-uc-tag\">How AquaForge Helps<\/div><div class=\"afx-uc-txt\">Enter your jurisdictions and input water characteristics (as ranges &mdash; because that&#8217;s how the real world works). Regulatory Intelligence extracts and structures all applicable requirements, then shows you the gap between your current state and compliance targets.<\/div><\/div>\n          <div class=\"afx-uc-step\"><div class=\"afx-uc-tag\">Outcome<\/div><div class=\"afx-uc-txt\">Complete, traceable regulatory requirements. The gap analysis becomes precise design constraints for the next phase. At $7,000\/year, the ROI is immediate on a single project.<\/div><\/div>\n          <span class=\"afx-uc-pill\">Full Regulatory Intelligence &mdash; <b>$7,000\/year<\/b><\/span>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- ============ ROI CALCULATOR ============ -->\n  <section class=\"afx-sec ice\">\n    <div class=\"afx-wrap\">\n      <h2 class=\"afx-h2 afx-reveal\">See your savings on the next project<\/h2>\n      <p class=\"afx-sub afx-reveal d1\">Adjust the sliders to match your reality. The math updates live.<\/p>\n\n      <div class=\"afx-calc afx-reveal d1\">\n        <div class=\"afx-calc-grid\">\n          <div>\n            <div class=\"afx-ctrl\">\n              <label>Bids &amp; projects per year <span id=\"afxOutProj\">12<\/span><\/label>\n              <input type=\"range\" class=\"afx-range\" id=\"afxProj\" min=\"1\" max=\"60\" value=\"12\">\n            <\/div>\n            <div class=\"afx-ctrl\">\n              <label>Research hours per project <span id=\"afxOutHrs\">80<\/span><\/label>\n              <input type=\"range\" class=\"afx-range\" id=\"afxHrs\" min=\"10\" max=\"400\" value=\"80\" step=\"5\">\n            <\/div>\n            <div class=\"afx-ctrl\">\n              <label>Blended hourly rate <span id=\"afxOutRate\">$120<\/span><\/label>\n              <input type=\"range\" class=\"afx-range\" id=\"afxRate\" min=\"60\" max=\"300\" value=\"120\" step=\"5\">\n            <\/div>\n            <div class=\"afx-ctrl\" style=\"margin-bottom:0;\">\n              <label>Hours AquaForge removes <span id=\"afxOutEff\">70%<\/span><\/label>\n              <input type=\"range\" class=\"afx-range\" id=\"afxEff\" min=\"30\" max=\"90\" value=\"70\" step=\"5\">\n            <\/div>\n          <\/div>\n          <div class=\"afx-result\">\n            <div class=\"small\">Estimated annual saving<\/div>\n            <div class=\"big\" id=\"afxMoney\">$0<\/div>\n            <div class=\"hrs\" id=\"afxHoursSaved\">0 hours returned to your team<\/div>\n            <div class=\"note\">Illustrative estimate based on your inputs &mdash; not a guarantee. Validate against your own project data.<\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- ============ HOW IT WORKS ============ -->\n  <section class=\"afx-sec\">\n    <div class=\"afx-wrap\">\n      <h2 class=\"afx-h2 afx-reveal\">How it works<\/h2>\n      <p class=\"afx-sub afx-reveal d1\">Three steps from a blank RFP to design-ready constraints.<\/p>\n      <div class=\"afx-steps\">\n        <div class=\"afx-step afx-reveal d1\">\n          <div class=\"n\">1<\/div>\n          <h3>Define your context<\/h3>\n          <p>Enter jurisdictions and input water characteristics. Supports ranges and parameter correlations &mdash; because clients rarely provide exact values.<\/p>\n        <\/div>\n        <div class=\"afx-step afx-reveal d2\">\n          <div class=\"n\">2<\/div>\n          <h3>AI extracts requirements<\/h3>\n          <p>Automated extraction from authoritative government sources in 50+ languages. Every requirement is traceable to its source document.<\/p>\n        <\/div>\n        <div class=\"afx-step afx-reveal d3\">\n          <div class=\"n\">3<\/div>\n          <h3>Get your compliance picture<\/h3>\n          <p>Structured checklist of all applicable requirements. Gap analysis showing where your inputs fall short of regulatory targets. Ready to feed into design.<\/p>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- ============ WHY AQUAFORGE ============ -->\n  <section class=\"afx-sec ice\">\n    <div class=\"afx-wrap\">\n      <h2 class=\"afx-h2 afx-reveal\">Why AquaForge<\/h2>\n      <p class=\"afx-sub afx-reveal d1\">Five things generic research tools and offshore teams can&#8217;t give you.<\/p>\n      <div class=\"afx-diffs\">\n        <div class=\"afx-diff afx-reveal d1\"><b>50+ languages<\/b><p>Regulations aren&#8217;t written in English. Our extraction works across 50+ languages &mdash; from French and German to Mandarin and Arabic.<\/p><\/div>\n        <div class=\"afx-diff afx-reveal d1\"><b>Range-based inputs<\/b><p>Input water characteristics as ranges with correlations between parameters. Because E. coli concentration relates to temperature.<\/p><\/div>\n        <div class=\"afx-diff afx-reveal d2\"><b>Traceable to source<\/b><p>Every extracted requirement links back to the original government document. Your team can verify anything we surface.<\/p><\/div>\n        <div class=\"afx-diff afx-reveal d2\"><b>Multi-jurisdiction layering<\/b><p>Federal, state\/provincial, and municipal regulations often conflict or layer. We map the full regulatory stack.<\/p><\/div>\n        <div class=\"afx-diff afx-reveal d3\"><b>Conversational AI<\/b><p>Ask questions. Get explanations. Give instructions. The AI helps you understand the regulatory landscape, not just list requirements.<\/p><\/div>\n        <div class=\"afx-diff afx-reveal d3\"><b>Below procurement thresholds<\/b><p>Both tiers sit under typical sign-off limits, so your practice lead can start today without a procurement cycle.<\/p><\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- ============ PRICING ============ -->\n  <section class=\"afx-sec\" id=\"afx-pricing\">\n    <div class=\"afx-wrap\">\n      <h2 class=\"afx-h2 afx-reveal\">Pricing that makes sense on a single project<\/h2>\n      <p class=\"afx-sub afx-reveal d1\">Both tiers are below typical procurement thresholds. Your practice lead can get started today.<\/p>\n      <div class=\"afx-prices\">\n        <div class=\"afx-price afx-reveal d1\">\n          <div class=\"tier\">Quick Check<\/div>\n          <div class=\"cost\">$2,000<span>\/year<\/span><\/div>\n          <p class=\"desc\">Fast regulatory risk scan for bid responses. Identify key risks across layered jurisdictions in minutes.<\/p>\n        <\/div>\n        <div class=\"afx-price feat afx-reveal d2\">\n          <div class=\"tier\">Full Regulatory Intelligence<\/div>\n          <div class=\"cost\">$7,000<span>\/year<\/span><\/div>\n          <p class=\"desc\">Complete extraction, structured checklist, and gap analysis. Design-ready constraints for delivery.<\/p>\n        <\/div>\n      <\/div>\n      <div style=\"text-align:center;\" class=\"afx-reveal d2\">\n        <a class=\"afx-btn afx-btn-primary\" href=\"\/en\/contact\/?type=demo\">Book a Demo &rarr;<\/a>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- ============ GENERATIVE DESIGN TEASER ============ -->\n  <section class=\"afx-sec ice\">\n    <div class=\"afx-wrap afx-gd\">\n      <h2 class=\"afx-h2 afx-reveal\">Regulatory Intelligence is step one.<br>Generative Design is step two.<\/h2>\n      <div class=\"afx-flow afx-reveal d1\">\n        <div class=\"afx-flow-node\">Gap analysis<\/div>\n        <div class=\"afx-flow-arrow\">&rarr;<\/div>\n        <div class=\"afx-flow-node\">Constraint set<\/div>\n        <div class=\"afx-flow-arrow\">&rarr;<\/div>\n        <div class=\"afx-flow-node\">Treatment chain optimization<\/div>\n      <\/div>\n      <p class=\"afx-sub afx-reveal d1\" style=\"margin-bottom:0;\">The gap analysis from Regulatory Intelligence becomes the constraint set for Generative Design &mdash; compliance flows directly into design with no re-entry, no lost context.<\/p>\n      <div class=\"afx-coming afx-reveal d2\">Coming 2027<\/div>\n      <div class=\"afx-reveal d2\">\n        <a class=\"afx-btn afx-btn-primary\" href=\"\/en\/contact\/?type=demo\">Get notified at launch<\/a>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- ============ FINAL CTA ============ -->\n  <section class=\"afx-final\">\n    <div class=\"afx-wrap\">\n      <h2 class=\"afx-reveal\">What&#8217;s your rework risk on the next bid?<\/h2>\n      <p class=\"afx-reveal d1\">Act on your actual compliance risk in 15 minutes.<\/p>\n    <\/div>\n  <\/section>\n\n<\/div><!-- \/.afx -->\n\n<script>\n(function(){\n  var root = document.currentScript ? document.currentScript.previousElementSibling : document.querySelector('.afx');\n  if (!root || !root.classList.contains('afx')) root = document.querySelector('.afx');\n\n  \/* ---- SCROLL REVEAL ---- *\/\n  var revs = root.querySelectorAll('.afx-reveal');\n  if ('IntersectionObserver' in window) {\n    var io = new IntersectionObserver(function(entries){\n      entries.forEach(function(e){ if(e.isIntersecting){ e.target.classList.add('in'); io.unobserve(e.target); } });\n    }, { threshold:.15 });\n    revs.forEach(function(el){ io.observe(el); });\n  } else {\n    revs.forEach(function(el){ el.classList.add('in'); });\n  }\n\n  \/* ---- TYPED WORD IN HERO ---- *\/\n  var words = ['jurisdiction.','language.','discharge limit.','monitoring rule.','jurisdiction.'];\n  var typed = document.getElementById('afxTyped');\n  if (typed) {\n    var wi=0, ci=0, del=false;\n    function tick(){\n      var w = words[wi];\n      typed.textContent = del ? w.substring(0,ci--) : w.substring(0,ci++);\n      var speed = del ? 45 : 95;\n      if(!del && ci===w.length+1){ del=true; speed=1400; }\n      else if(del && ci===0){ del=false; wi=(wi+1)%words.length; speed=300; }\n      setTimeout(tick, speed);\n    }\n    setTimeout(tick, 1200);\n  }\n\n  \/* ---- COUNT-UP STATS ---- *\/\n  function animateCount(el){\n    var target = parseFloat(el.getAttribute('data-count'));\n    var suffix = el.getAttribute('data-suffix') || '';\n    var dur = 1400, start = null;\n    function step(ts){\n      if(!start) start = ts;\n      var p = Math.min((ts-start)\/dur, 1);\n      var eased = 1 - Math.pow(1-p, 3);\n      var val = Math.round(target*eased);\n      el.textContent = val + suffix;\n      if(p<1) requestAnimationFrame(step);\n      else el.textContent = target + suffix;\n    }\n    requestAnimationFrame(step);\n  }\n  var nums = root.querySelectorAll('.num[data-count]');\n  if ('IntersectionObserver' in window) {\n    var io2 = new IntersectionObserver(function(entries){\n      entries.forEach(function(e){ if(e.isIntersecting){ animateCount(e.target); io2.unobserve(e.target); } });\n    }, { threshold:.6 });\n    nums.forEach(function(el){ io2.observe(el); });\n  } else { nums.forEach(animateCount); }\n\n  \/* ---- USE-CASE TABS ---- *\/\n  root.querySelectorAll('.afx-tab').forEach(function(tab){\n    tab.addEventListener('click', function(){\n      var key = tab.getAttribute('data-tab');\n      root.querySelectorAll('.afx-tab').forEach(function(t){ t.classList.toggle('on', t===tab); });\n      root.querySelectorAll('.afx-panel').forEach(function(p){\n        var on = p.getAttribute('data-panel')===key;\n        p.classList.toggle('on', on);\n        if(on){ p.querySelectorAll('.afx-reveal').forEach(function(r){ r.classList.add('in'); }); }\n      });\n    });\n  });\n\n  \/* ---- ROI CALCULATOR ---- *\/\n  var proj=document.getElementById('afxProj'), hrs=document.getElementById('afxHrs'),\n      rate=document.getElementById('afxRate'), eff=document.getElementById('afxEff');\n  var oProj=document.getElementById('afxOutProj'), oHrs=document.getElementById('afxOutHrs'),\n      oRate=document.getElementById('afxOutRate'), oEff=document.getElementById('afxOutEff'),\n      money=document.getElementById('afxMoney'), saved=document.getElementById('afxHoursSaved');\n\n  function fmt(n){ return '$' + Math.round(n).toLocaleString('en-US'); }\n  function calc(){\n    if(!proj) return;\n    var P=+proj.value, H=+hrs.value, R=+rate.value, E=+eff.value\/100;\n    oProj.textContent=P; oHrs.textContent=H+'h'; oRate.textContent='$'+R; oEff.textContent=Math.round(E*100)+'%';\n    var hoursSaved = P*H*E;\n    var dollars = hoursSaved*R;\n    money.textContent = fmt(dollars);\n    saved.textContent = Math.round(hoursSaved).toLocaleString('en-US') + ' hours returned to your team';\n  }\n  [proj,hrs,rate,eff].forEach(function(s){ if(s) s.addEventListener('input', calc); });\n  calc();\n})();\n<\/script>\n\n\n<!-- ============ CONTACT FORM (unchanged CF7 shortcode) ============ -->\n\n<div class=\"wp-block-group alignfull has-white-color has-af-navy-background-color has-text-color has-background is-layout-constrained wp-container-core-group-is-layout-5439dd62 wp-block-group-is-layout-constrained\" style=\"padding-top:0px;padding-right:20px;padding-bottom:80px;padding-left:20px\">\n\n<div class=\"wpcf7 no-js\" id=\"wpcf7-f1687-o1\" lang=\"\" dir=\"ltr\" data-wpcf7-id=\"1687\">\n<div class=\"screen-reader-response\"><p role=\"status\" aria-live=\"polite\" aria-atomic=\"true\"><\/p> <ul><\/ul><\/div>\n<form action=\"\/en\/wp-json\/wp\/v2\/pages\/1236#wpcf7-f1687-o1\" method=\"post\" class=\"wpcf7-form init\" aria-label=\"Contact form\" novalidate=\"novalidate\" data-status=\"init\">\n<fieldset class=\"hidden-fields-container\"><input type=\"hidden\" name=\"_wpcf7\" value=\"1687\" \/><input type=\"hidden\" name=\"_wpcf7_version\" value=\"6.1.6\" \/><input type=\"hidden\" name=\"_wpcf7_locale\" value=\"\" \/><input type=\"hidden\" name=\"_wpcf7_unit_tag\" value=\"wpcf7-f1687-o1\" \/><input type=\"hidden\" name=\"_wpcf7_container_post\" value=\"0\" \/><input type=\"hidden\" name=\"_wpcf7_posted_data_hash\" value=\"\" \/>\n<\/fieldset>\n<div class=\"af-inline-form\">\n\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"your-name\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Name\" value=\"\" type=\"text\" name=\"your-name\" \/><\/span><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-email\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-email wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-email\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Email\" value=\"\" type=\"email\" name=\"your-email\" \/><\/span><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-company\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" aria-invalid=\"false\" placeholder=\"Company\" value=\"\" type=\"text\" name=\"your-company\" \/><\/span><br \/>\n\t<input class=\"wpcf7-form-control wpcf7-hidden\" value=\"Demo Request\" type=\"hidden\" name=\"purpose\" \/><br \/>\n<span class=\"af-form-break\"><\/span><div class=\"af-turnstile-ghost\"><div class=\"cf-turnstile\" data-sitekey=\"0x4AAAAAAC1dQ4kYHZmuXwt8\" data-theme=\"light\" data-size=\"normal\" data-language=\"en\" data-appearance=\"interaction-only\" data-execution=\"execute\" data-callback=\"afTurnstileInlineCallback\"><\/div><\/div><input class=\"wpcf7-form-control wpcf7-submit has-spinner af-btn af-btn-primary\" type=\"submit\" value=\"Book a Demo\" \/>\n\t<\/p>\n<\/div><div class=\"wpcf7-response-output\" aria-hidden=\"true\"><\/div>\n<\/form>\n<\/div>\n\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Available Now AI Regulatory Intelligence for Water TreatmentEvery jurisdiction. From 400 hours of research to a structured compliance checklist. Try the Demo &rarr; See Pricing 0 Manual research replaced per complex project 0 Languages of regulatory extraction 0 To act on your real compliance risk 0 Requirements traceable to source Built for how AEC firms [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":1231,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1236","page","type-page","status-publish","hentry"],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":6},"has_hero_section":"disabled"},"_links":{"self":[{"href":"https:\/\/driving-firefly-dev.10web.cloud\/en\/wp-json\/wp\/v2\/pages\/1236","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/driving-firefly-dev.10web.cloud\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/driving-firefly-dev.10web.cloud\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/driving-firefly-dev.10web.cloud\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/driving-firefly-dev.10web.cloud\/en\/wp-json\/wp\/v2\/comments?post=1236"}],"version-history":[{"count":14,"href":"https:\/\/driving-firefly-dev.10web.cloud\/en\/wp-json\/wp\/v2\/pages\/1236\/revisions"}],"predecessor-version":[{"id":1879,"href":"https:\/\/driving-firefly-dev.10web.cloud\/en\/wp-json\/wp\/v2\/pages\/1236\/revisions\/1879"}],"up":[{"embeddable":true,"href":"https:\/\/driving-firefly-dev.10web.cloud\/en\/wp-json\/wp\/v2\/pages\/1231"}],"wp:attachment":[{"href":"https:\/\/driving-firefly-dev.10web.cloud\/en\/wp-json\/wp\/v2\/media?parent=1236"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}