Supporting Technologies — Autoflo Technology
:root {
--accent: #800059;
--accent-dk: #5A003E;
--accent-tint: #FAEEF5;
--cta-bg: #FEBE4F;
--cta-text: #331A00;
--dark-bg: #2A001D;
--bg: #FFFFFF;
--bg-section: #F8F9FA;
--bg-alt: #F3F4F6;
--text: #111827;
--muted: #4B5563;
--border: #E5E7EB;
--container: 1240px;
--ease: cubic-bezier(0.22, 1, 0.36, 1);
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; overflow-x: clip; width: 100%; margin: 0; padding: 0; }
body { font-family: 'Inter', system-ui, sans-serif; background: var(--bg); color: var(--text); -webkit-font-smoothing: antialiased; overflow-x: clip; line-height: 1.7; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
ul { list-style: none; }
button { font-family: inherit; cursor: pointer; border: none; background: none; }
.container { max-width: var(--container); margin: 0 auto; padding: 0 40px; }
.btn { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; border-radius: 4px; padding: 13px 28px; transition: all 0.3s var(--ease); white-space: nowrap; cursor: pointer; position: relative; overflow: hidden; font-family: inherit; border: none; }
.btn::after { content: ''; position: absolute; top: 0; left: -100%; width: 50%; height: 100%; background: linear-gradient(to right, transparent, rgba(255,255,255,0.2), transparent); transform: skewX(-25deg); transition: left 0.6s var(--ease); pointer-events: none; }
.btn:hover::after { left: 150%; }
.btn-accent { background: linear-gradient(135deg, #ffd080, #FEBE4F); color: var(--cta-text); box-shadow: 0 4px 12px rgba(254,190,79,0.2); }
.btn-accent:hover { background: linear-gradient(135deg, #ffe9a8, #ffd080); transform: translateY(-2px); box-shadow: 0 8px 20px rgba(254,190,79,0.3); }
.btn-dark { background: linear-gradient(135deg, #800059, #2A001D); color: #fff; box-shadow: 0 4px 12px rgba(128,0,89,0.2); }
.btn-dark:hover { background: linear-gradient(135deg, #b3007c, #9b006c); transform: translateY(-2px); box-shadow: 0 8px 20px rgba(128,0,89,0.3); }
.product-top { padding: 100px 0; background: var(--bg); border-bottom: 1px solid var(--border); }
.product-top-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: start; }
.gallery-main { border-radius: 12px; overflow: hidden; aspect-ratio: 4/5; background: var(--bg-alt); border: 1px solid var(--border); position: relative; }
.gallery-main img { width: 100%; height: 100%; object-fit: cover; transition: opacity 0.35s ease; }
.gallery-thumbs { display: flex; gap: 10px; margin-top: 12px; flex-wrap: wrap; }
.gallery-thumb { width: 72px; height: 72px; border-radius: 6px; overflow: hidden; border: 2px solid transparent; cursor: pointer; background: var(--bg-alt); transition: border-color 0.2s, transform 0.2s; flex-shrink: 0; }
.gallery-thumb img { width: 100%; height: 100%; object-fit: cover; }
.gallery-thumb:hover { border-color: var(--accent); transform: translateY(-2px); }
.gallery-thumb.active { border-color: var(--accent); }
.product-info { display: flex; flex-direction: column; }
.product-info-label { font-size: 14px; font-weight: 600; letter-spacing: 0.05em; color: var(--accent); text-transform: uppercase; display: inline-block; margin-bottom: 8px; }
.product-name { font-family: 'Outfit', system-ui, sans-serif; font-size: clamp(32px, 4vw, 40px); font-weight: 600; color: var(--text); letter-spacing: -0.02em; line-height: 1.15; margin-top: 4px; }
.product-info-desc { font-size: 17px; color: var(--muted); line-height: 1.7; margin-bottom: 24px; }
.feature-list { display: flex; flex-direction: column; gap: 14px; margin-bottom: 32px; }
.feature-item { display: flex; align-items: flex-start; gap: 12px; }
.feature-check { width: 20px; height: 20px; border-radius: 50%; background: var(--accent-tint); border: 1px solid rgba(128,0,89,0.2); flex-shrink: 0; margin-top: 1px; display: flex; align-items: center; justify-content: center; }
.feature-check svg { width: 11px; height: 11px; color: var(--accent); }
.feature-item p { font-size: 14px; color: var(--muted); line-height: 1.6; }
.feature-item strong { color: var(--text); font-weight: 600; }
.product-cta-row { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 4px; }
.reveal { opacity: 0; transform: translateY(20px); transition: opacity 0.65s ease, transform 0.65s ease; }
.reveal.is-visible { opacity: 1; transform: none; }
@media (max-width: 1024px) { .container { padding: 0 24px; } }
@media (max-width: 900px) { .product-top-grid { grid-template-columns: 1fr; gap: 40px; } }
Category Overview
Supporting Technologies for Intelligent Chemical & Water Management
Supporting Technologies complement and enhance dosing, flow, control and system technologies by improving measurement accuracy, installation quality, process visibility and operational reliability.
From calibration solutions and tracer chemicals to sensors, probe holders and irrigation components, these products play a critical role in helping users monitor, verify, optimise and maintain their chemical and water management systems.
Monitoring and measurement support — includes soil sensors, environmental sensors, reagents and calibration solutions for improved visibility and decision-making
Installation and system accessories — includes probe holders, pulsation dampeners, dynamic mixers and level switches for reliable system operation
Application enhancement technologies — includes salt chlorinators, spraying systems and precision irrigation products for specific operational requirements
Performance verification and optimisation — supports system calibration, treatment verification and process optimisation across chemical and water management applications
(function () {
document.querySelectorAll('#afGalleryThumbs .gallery-thumb').forEach(thumb => {
thumb.addEventListener('click', () => {
document.getElementById('afGalleryMainImg').src = thumb.dataset.src;
document.querySelectorAll('#afGalleryThumbs .gallery-thumb').forEach(t => t.classList.remove('active'));
thumb.classList.add('active');
});
});
const obs = new IntersectionObserver(entries => {
entries.forEach(e => { if (e.isIntersecting) { e.target.classList.add('is-visible'); obs.unobserve(e.target); } });
}, { threshold: 0.08 });
document.querySelectorAll('.reveal').forEach(el => obs.observe(el));
})();