PageSourceSearch

https://www.enttec.com.au/store-policy/

html enttec.com.au collected 2026-10-05 21:10:01 UTC 364,817 bytes, 4,395 lines download raw bytes

1<!doctype html>
2<html lang="en-AU" class="no-js">
3
4<head>
5	<meta charset="UTF-8">
6
7		<link rel="preconnect" href="https://cdn.enttec.com" crossorigin>
8		<link rel="preconnect" href="https://www.googletagmanager.com" crossorigin>
9	<link rel="preconnect" href="https://stats.wp.com" crossorigin>
10	
11	
12	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
13	<meta name="viewport" content="width=device-width, initial-scale=1.0">
14    <meta name="facebook-domain-verification" content="" />
15
16		
16<script>
17	window.ENTTEC_AUTOREDIRECT = true;
18	window.ENTTEC_LOGGED_IN    = false;
19	// Suppress the auto-redirect on transactional WooCommerce pages: cart,
20	// checkout (incl. the order-received / payment-return thank-you endpoint),
21	// and account pages. Stops a returning payment-gateway visitor (or an
22	// emailed cart/checkout link) being bounced mid-flow. These pages aren't
23	// page-cached, so a per-page value here is cache-safe.
24	window.ENTTEC_GEO_SUPPRESS = false;
25	window.ENTTEC_REGION_URLS  = {"AU":"https:\/\/www.enttec.com.au\/","EU":"https:\/\/www.enttec.co.uk\/","US":"https:\/\/www.enttec.com\/","AE":"https:\/\/enttec.ae\/","CN":"https:\/\/enttec.com.cn\/"};
26	window.ENTTEC_REGION_LABELS= {"AU":"Australia","EU":"UK","US":"USA","AE":"UAE","CN":"China"};
27	(function () {
28		var h = window.location.hash || '';
29		// Flag set early (before the footer AJAX) so a just-redirected arrival
30		// shows the bar instead of being redirected again.
31		window.ENTTEC_ARRIVED_VIA_REDIRECT = /(?:^|#|&)enttec-from=/.test(h);
32		// Loop-breaker: if we arrived via the bar's "go back" link, set THIS
33		// domain's 30-day stay cookie synchronously (cookies are per-domain,
34		// which is why the choice must be re-asserted on the origin), then
35		// strip the hash. The footer AJAX then sees the cookie and returns no
36		// redirect this pageload.
37		if (/(?:^|#|&)enttec-stay\b/.test(h)) {
38			document.cookie = 'userRejectedRedirection=yes; path=/; max-age=2592000; SameSite=Lax';
39			history.replaceState(null, '', window.location.pathname + window.location.search);
40		}
41
42		// Decide "should this visitor move?" as early as possible. Firing the
43		// check here in <head> (instead of waiting for the footer) means the
44		// redirect can fire before the heavy page renders, far less flash.
45		// One shared fetch: the footer reuses this same promise for the legacy
46		// popup / country picker, so there's no second request.
47		// Skip the location check entirely for visitors who don't need it:
48		//  - logged-in users (they have an account on THIS region → already in the
49		//    right place; redirecting them would eject them from their session)
50		//  - anyone who just arrived via a redirect (#enttec-from)
51		//  - anyone who already chose "stay" (userRejectedRedirection cookie)
52		// Anonymous visitors still run the check (flag-independent), so the
53		// within-region currency/language popup keeps working when auto-redirect
54		// is off. This saves the ~1.5s server round-trip for everyone above.
55		window.__enttecGeoCheck = (
56			window.ENTTEC_LOGGED_IN
57			|| window.ENTTEC_ARRIVED_VIA_REDIRECT
58			|| window.ENTTEC_GEO_SUPPRESS
59			|| /(?:^|;\s*)userRejectedRedirection=yes/.test(document.cookie)
60		) ? Promise.resolve(null) : fetch('https://www.enttec.com.au/wp-admin/admin-ajax.php', {
61			method: 'POST',
62			headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
63			credentials: 'same-origin',
64			body: 'action=check_region_redirect'
65				+ '&page_url=' + encodeURIComponent(window.location.pathname + window.location.search)
66				+ '&site_location=' + encodeURIComponent('au')
67		}).then(function (r) { return r.json(); })
68		  .then(function (res) { return (res && res.success) ? res.data : null; })
69		  .catch(function () { return null; });
70
71		// Redirect immediately when the answer is "wrong region" (anonymous +
72		// flag on + not a just-redirected arrival). Cross-domain so location.replace.
73		// EU/EEA visitors (d.ask_first) are never moved: the footer shows them the
74		// "go to your local site?" popup instead, because the EU Geo-blocking
75		// Regulation requires their consent before a location-based redirect.
76		window.__enttecGeoCheck.then(function (d) {
77			if (!d) { return; }
78			if (window.ENTTEC_AUTOREDIRECT && !window.ENTTEC_LOGGED_IN
79				&& !window.ENTTEC_ARRIVED_VIA_REDIRECT && d.switch_region && d.redirect_url && !d.ask_first) {
80				var go = function () { window.location.replace(d.redirect_url + '#enttec-from=' + (d.site_region || '')); };
81				var reduceMo = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;
82				// Brief "Checking your location" pill so the move reads as intentional
83				// rather than an abrupt jump. Only shown to visitors we're actually
84				// redirecting, so in-region visitors never see a flash.
85				var pill = document.createElement('div');
86				pill.className = 'enttec-geo-pill';
87				pill.setAttribute('role', 'status');
88				pill.innerHTML = '<span class="enttec-geo-pill__ring" aria-hidden="true"></span><span>Checking your location…</span>';
89				(document.body || document.documentElement).appendChild(pill);
90				if (reduceMo) { setTimeout(go, 500); }
91				else { requestAnimationFrame(function () { pill.classList.add('enttec-geo-pill--in'); }); setTimeout(go, 1100); }
92			}
93		});
94	})();
95	</script>
95
96
97	
98	<meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' />
99<link rel="prefetch" as="image" href="https://cdn.enttec.com/wp-content/uploads/2025/01/28102338/1903_x_1040_category_banner_software_4-768x420.jpg">
100<link rel="prefetch" as="image" href="https://cdn.enttec.com/website/megamenu/banner_showcontrol_3-768x420.jpg">
101<link rel="prefetch" as="image" href="https://cdn.enttec.com/website/megamenu/banner_showcontrol_2-768x420.jpg">
102<link rel="prefetch" as="image" href="https://cdn.enttec.com/website/megamenu/banner_dots5-768x420.jpg">
103<link rel="prefetch" as="image" href="https://cdn.enttec.com/website/megamenu/banner_pixelstrip-768x420.jpg">
104<link rel="prefetch" as="image" href="https://cdn.enttec.com/website/products/73060-neon-flex/73060-neon-flex-banner.jpg">
105<link rel="prefetch" as="image" href="https://cdn.enttec.com/website/megamenu/banner_led_dimmers_2-768.jpg">
106<link rel="prefetch" as="image" href="https://cdn.enttec.com/wp-content/uploads/2025/01/28112505/1903_x_1040_category_banner_dmxethernet-768x420.jpg">
107<link rel="prefetch" as="image" href="https://cdn.enttec.com/website/megamenu/banner_dmx-768x420.jpg">
108<link rel="prefetch" as="image" href="https://cdn.enttec.com/website/megamenu/banner_CV_2-768x420.jpg">
109
110	<!-- This site is optimized with the Yoast SEO Premium plugin v27.6 (Yoast SEO v27.6) - https://yoast.com/product/yoast-seo-premium-wordpress/ -->
111	<title>Store Policy | ENTTEC</title>
112	<meta name="description" content="Look no further than ENTTEC&#039;s famous DMX controller and more for all your lighting projects. (Applications included)" />
113	<link rel="canonical" href="https://www.enttec.com.au/store-policy/" />
114	<meta property="og:locale" content="en_US" />
115	<meta property="og:type" content="article" />
116	<meta property="og:title" content="Store Policy" />
117	<meta property="og:description" content="Store PolicyLast updated: 2 June 2026On this pageENTTEC.COM.AU STORE POLICYProcessing orders – Shipping conditions – RefundBACKGROUNDSCHEDULE 1 |" />
118	<meta property="og:url" content="https://www.enttec.com.au/store-policy/" />
119	<meta property="og:site_name" content="ENTTEC" />
120	<meta property="article:publisher" content="https://www.facebook.com/enttec/" />
121	<meta property="article:modified_time" content="2026-09-21T10:19:32+00:00" />
122	<meta name="twitter:card" content="summary_large_image" />
123	<meta name="twitter:label1" content="Est. reading time" />
124	<meta name="twitter:data1" content="12 minutes" />
125	
125<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.enttec.com.au\/store-policy\/","url":"https:\/\/www.enttec.com.au\/store-policy\/","name":"Store Policy | ENTTEC","isPartOf":{"@id":"https:\/\/www.enttec.com.au\/#website"},"datePublished":"2017-03-21T23:00:24+00:00","dateModified":"2026-09-21T10:19:32+00:00","description":"Look no further than ENTTEC's famous DMX controller and more for all your lighting projects. (Applications included)","breadcrumb":{"@id":"https:\/\/www.enttec.com.au\/store-policy\/#breadcrumb"},"inLanguage":"en-AU","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.enttec.com.au\/store-policy\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.enttec.com.au\/store-policy\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.enttec.com.au\/"},{"@type":"ListItem","position":2,"name":"Store Policy"}]},{"@type":"WebSite","@id":"https:\/\/www.enttec.com.au\/#website","url":"https:\/\/www.enttec.com.au\/","name":"ENTTEC","description":"Designs and manufactures control, lights, solutions for all LED projects","publisher":{"@id":"https:\/\/www.enttec.com.au\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.enttec.com.au\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-AU"},{"@type":"Organization","@id":"https:\/\/www.enttec.com.au\/#organization","name":"ENTTEC","url":"https:\/\/www.enttec.com.au\/","logo":{"@type":"ImageObject","inLanguage":"en-AU","@id":"https:\/\/www.enttec.com.au\/#\/schema\/logo\/image\/","url":"https:\/\/www.enttec.com.au\/wp-content\/uploads\/2022\/08\/ENTTEC-Logo.png","contentUrl":"https:\/\/www.enttec.com.au\/wp-content\/uploads\/2022\/08\/ENTTEC-Logo.png","width":4770,"height":765,"caption":"ENTTEC"},"image":{"@id":"https:\/\/www.enttec.com.au\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/enttec\/","https:\/\/www.instagram.com\/enttecofficial\/","https:\/\/www.linkedin.com\/company\/enttec","https:\/\/www.youtube.com\/c\/ENTTECofficial","https:\/\/x.com\/ENTTECOfficial"],"foundingDate":"1999","founder":{"@type":"Person","name":"Nicolas Moreau"},"slogan":"The complete pixel lighting control system: software, controllers and fixtures, engineered to work together.","description":"ENTTEC designs and manufactures complete LED pixel lighting control systems. We are one of very few companies that make all three parts of the system ourselves: control software (ELM and EMU), pixel controllers and DMX, Art-Net and sACN gateways, and LED fixtures, engineered to work together as one guaranteed-compatible system rather than sourced from separate vendors. A pioneer of PC-based lighting control since 1999 (creator of the world-first Open DMX USB interface) and now a leader in pixel lighting, ENTTEC operates worldwide, with offices in the United States (North Carolina and Florida), the United Kingdom (London), the United Arab Emirates (Dubai) and Australia and two manufacturing facilities, so multinational projects designed in one country and installed in another get local support wherever they are.","knowsAbout":["LED pixel lighting control systems","Pixel mapping software","LED pixel mapping","Lighting control software","ELM (ENTTEC LED Mapper)","EMU sound-to-light controller","DMX512","Art-Net","sACN (E1.31)","RDM","DMX over Ethernet nodes","LED pixel controllers","LED fixtures","End-to-end LED lighting installations"],"areaServed":"Worldwide","location":[{"@type":"Place","name":"ENTTEC USA (North Carolina)","address":{"@type":"PostalAddress","addressRegion":"NC","addressCountry":"US"}},{"@type":"Place","name":"ENTTEC USA (Florida)","address":{"@type":"PostalAddress","addressRegion":"FL","addressCountry":"US"}},{"@type":"Place","name":"ENTTEC UK (London)","address":{"@type":"PostalAddress","addressLocality":"London","addressCountry":"GB"}},{"@type":"Place","name":"ENTTEC Middle East (Dubai)","address":{"@type":"PostalAddress","addressLocality":"Dubai","addressCountry":"AE"}},{"@type":"Place","name":"ENTTEC Australia","address":{"@type":"PostalAddress","addressCountry":"AU"}}]}]}</script>
125
126	<!-- / Yoast SEO Premium plugin. -->
127
128
129<link rel='dns-prefetch' href='//translate.google.com' />
130<link rel='dns-prefetch' href='//www.googletagmanager.com' />
131<link rel='dns-prefetch' href='//cdn.enttec.com' />
132<link rel='dns-prefetch' href='//cdnjs.cloudflare.com' />
133
134<!-- ENTTEC cross-region hreflang (#7437; WS6 trim=1) -->
135<link rel="alternate" hreflang="en-US" href="https://www.enttec.com/store-policy/" />
136<link rel="alternate" hreflang="en-AU" href="https://www.enttec.com.au/store-policy/" />
137<link rel="alternate" hreflang="en-GB" href="https://www.enttec.co.uk/store-policy/" />
138<link rel="alternate" hreflang="en-AE" href="https://enttec.ae/store-policy/" />
139<link rel="alternate" hreflang="ru-RU" href="https://enttec.com.ru/store-policy/" />
140<link rel="alternate" hreflang="zh-CN" href="https://enttec.com.cn/store-policy/" />
141<link rel="alternate" hreflang="x-default" href="https://www.enttec.com/store-policy/" />
142<!-- /ENTTEC cross-region hreflang -->
143<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://www.enttec.com.au/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.enttec.com.au%2Fstore-policy%2F" />
144<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://www.enttec.com.au/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.enttec.com.au%2Fstore-policy%2F&#038;format=xml" />
145<script>window.EMU_PREVIEW_MANIFEST={"version":"26.901.2-preview","channel":"preview","buildDate":"2026-09-01T08:52:06Z","downloads":{"win-x64":"EMU-26.901.2-preview-win-x64.exe","osx-arm64":"EMU-26.901.2-preview-osx-arm64.pkg","osx-x64":"EMU-26.901.2-preview-osx-x64.pkg"}};</script>
145<script>
146var wpo_server_info_css = {"user_agent":"Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/145.0.0.0 Safari\/537.36 (compatible; meta-externalagent\/1.1 (+https:\/\/developers.facebook.com\/docs\/sharing\/webmasters\/crawler))"}
147    var wpo_mine98e1681=document.createElement("link");wpo_mine98e1681.rel="stylesheet",wpo_mine98e1681.type="text/css",wpo_mine98e1681.media="async",wpo_mine98e1681.href="https://www.enttec.com.au/wp-admin/css/common.min.css?ver=6.9.5",wpo_mine98e1681.onload=function() {wpo_mine98e1681.media="all"},document.getElementsByTagName("head")[0].appendChild(wpo_mine98e1681);
148</script>
vendor: 1 bytes, line 148
148
149<script>
150var wpo_server_info_css = {"user_agent":"Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/145.0.0.0 Safari\/537.36 (compatible; meta-externalagent\/1.1 (+https:\/\/developers.facebook.com\/docs\/sharing\/webmasters\/crawler))"}
151    var wpo_min7754227e=document.createElement("link");wpo_min7754227e.rel="stylesheet",wpo_min7754227e.type="text/css",wpo_min7754227e.media="async",wpo_min7754227e.href="https://www.enttec.com.au/wp-content/plugins/enttec-plugin/blocks/blocks-editor.css?ver=6.9.5",wpo_min7754227e.onload=function() {wpo_min7754227e.media="all"},document.getElementsByTagName("head")[0].appendChild(wpo_min7754227e);
152</script>
vendor: 1 bytes, line 152
152
153<script>
154var wpo_server_info_css = {"user_agent":"Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/145.0.0.0 Safari\/537.36 (compatible; meta-externalagent\/1.1 (+https:\/\/developers.facebook.com\/docs\/sharing\/webmasters\/crawler))"}
155    var wpo_min7bd221ee=document.createElement("link");wpo_min7bd221ee.rel="stylesheet",wpo_min7bd221ee.type="text/css",wpo_min7bd221ee.media="async",wpo_min7bd221ee.href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.5.0/css/bootstrap.min.css?ver=6.9.5",wpo_min7bd221ee.onload=function() {wpo_min7bd221ee.media="all"},document.getElementsByTagName("head")[0].appendChild(wpo_min7bd221ee);
156</script>
vendor: 1 bytes, line 156
156
157<script>
158var wpo_server_info_css = {"user_agent":"Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/145.0.0.0 Safari\/537.36 (compatible; meta-externalagent\/1.1 (+https:\/\/developers.facebook.com\/docs\/sharing\/webmasters\/crawler))"}
159    var wpo_mina3ab1d16=document.createElement("link");wpo_mina3ab1d16.rel="stylesheet",wpo_mina3ab1d16.type="text/css",wpo_mina3ab1d16.media="async",wpo_mina3ab1d16.href="https://www.enttec.com.au/wp-content/themes/eshop/style/select2.min.css?ver=1.0",wpo_mina3ab1d16.onload=function() {wpo_mina3ab1d16.media="all"},document.getElementsByTagName("head")[0].appendChild(wpo_mina3ab1d16);
160</script>
vendor: 1 bytes, line 160
160
161<script>
162var wpo_server_info_css = {"user_agent":"Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/145.0.0.0 Safari\/537.36 (compatible; meta-externalagent\/1.1 (+https:\/\/developers.facebook.com\/docs\/sharing\/webmasters\/crawler))"}
163    var wpo_min493c23d2=document.createElement("link");wpo_min493c23d2.rel="stylesheet",wpo_min493c23d2.type="text/css",wpo_min493c23d2.media="async",wpo_min493c23d2.href="https://www.enttec.com.au/wp-content/themes/eshop/vendor/fontawesome/css/all.min.css?ver=1791191999",wpo_min493c23d2.onload=function() {wpo_min493c23d2.media="all"},document.getElementsByTagName("head")[0].appendChild(wpo_min493c23d2);
164</script>
vendor: 1 bytes, line 164
164
165<script>
166var wpo_server_info_css = {"user_agent":"Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/145.0.0.0 Safari\/537.36 (compatible; meta-externalagent\/1.1 (+https:\/\/developers.facebook.com\/docs\/sharing\/webmasters\/crawler))"}
167    var wpo_min06ee2594=document.createElement("link");wpo_min06ee2594.rel="stylesheet",wpo_min06ee2594.type="text/css",wpo_min06ee2594.media="async",wpo_min06ee2594.href="https://www.enttec.com.au/wp-content/themes/eshop/vendor/fontawesome/css/v4-shims.min.css?ver=1791191999",wpo_min06ee2594.onload=function() {wpo_min06ee2594.media="all"},document.getElementsByTagName("head")[0].appendChild(wpo_min06ee2594);
168</script>
168
169<style id='wp-img-auto-sizes-contain-inline-css' type='text/css'>
170img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
171/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
172</style>
173<style class="optimize_css_2" type="text/css" media="all">.featured-posts a{position:relative;display:block}.featured-posts a:hover h4{opacity:1;transform:scale(1)}.featured-posts a h4{position:absolute;top:0;width:100%;height:100%;text-align:center;padding:1em;font-size:2em;background-color:rgb(255 255 255 / .7);transform:scale(1.1);opacity:0;transition:all .3s;display:flex;justify-content:center;align-items:center}</style>
174<style id='enttec-design-system-inline-css' type='text/css'>
175:root{
176  /* ---- brand colour (stable; legal/EMU/etc. consume these) ---- */
177  --enttec-blue:#0ea5df;
178  --enttec-blue-hover:#0b87b8;
179  --enttec-ink:#2f2f2f;
180  --enttec-dark:#2f2f2f;          /* real ENTTEC charcoal for dark full-bleed bands */
181  --enttec-muted:#5b6573;
182  --enttec-grey:#f5f5f5;
183  --enttec-panel:#F6F8FB;         /* canonical (was #f7f9fc; unifies #f7f9fc/#f6f9fb) */
184  --enttec-line:rgba(0,0,0,.08);
185  --enttec-success:#1A8A4F;       /* canonical (unifies #28a745/#1a7f37) */
186  --enttec-danger:#B42318;        /* canonical (unifies #dc3545/#b42318/#d0011b) */
187  --emu-purple:#7f54b3;           /* product sub-accent - EMU page only (legacy) */
188  --emu-purple-hover:#6c459b;
189  /* ---- news category sub-palette ---- */
190  --enttec-cat-story:#2E8FB8;
191  --enttec-cat-focus:#7E6BB5;
192  --enttec-cat-product:#2FA98A;
193  --enttec-cat-guide:#C2913E;
194  --enttec-cat-newsletter:#C56B86;
195  /* ---- type families ----
196     NOT shipped by OMGF, whatever an earlier comment here claimed. Both families are
197     self-hosted in the theme (eshop/vendor/fonts/css/montserrat.css and
198     source-sans-3.css) and registered by enttec_theme_register_display_fonts().
199     Whether they are actually LOADED on a given page is decided by
200     enttec_theme_display_fonts() (the ENTTEC_DISPLAY_FONTS ship-dark constant,
201     defaulting to CN only) plus the page-scoped enqueues for account, checkout,
202     licences, the EMU bundle popups and the lifted product pages.
203     That matters when reading the fallbacks below: neither stack contains Fira Sans,
204     so on a region and page where these are NOT loaded, every consumer of these two
205     tokens (blog articles, the news index, project pages, the 2026 product pages)
206     renders in system-ui, i.e. the OS UI face, not in the theme's Fira Sans. ---- */
207  --enttec-font-display:'Montserrat',system-ui,sans-serif;
208  --enttec-font-body:'Source Sans 3',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
209  /* ---- legacy shape tokens (kept stable for existing consumers) ---- */
210  --enttec-radius:14px;
211  --enttec-radius-lg:22px;
212  --enttec-radius-pill:100px;
213  /* ---- system type scale (one unified scale, spec §10.3) ---- */
214  --eds-h1:clamp(32px,4.2vw,48px);
215  --eds-h2:clamp(24px,2.4vw,30px);
216  --eds-h3:clamp(20px,2vw,24px);
217  --eds-text-body:16.5px;
218  /* ---- system spacing (fluid) ---- */
219  --eds-space-2xs:clamp(6px,1vw,10px);
220  --eds-space-xs:clamp(10px,1.5vw,16px);
221  --eds-space-sm:clamp(16px,2vw,24px);
222  --eds-space-md:clamp(24px,3vw,40px);
223  --eds-space-lg:clamp(32px,5vw,72px);
224  --eds-section-y:clamp(60px,8vw,110px);
225  --eds-gap-card:clamp(24px,3vw,40px);
226  /* ---- system shape / shadow / motion / container ---- */
227  --eds-radius-sm:10px;
228  --eds-radius:15px;
229  --eds-radius-lg:20px;
230  --eds-radius-btn:28px;
231  --eds-shadow-card:0 1px 2px rgba(0,0,0,.05);
232  --eds-shadow-lift:0 18px 40px -20px rgba(16,40,60,.35);
233  --eds-ease:cubic-bezier(.22,.61,.36,1);
234  --eds-dur-fast:.2s;
235  --eds-dur:.3s;
236  --eds-dur-slow:.6s;
237  --eds-container:1760px;
238  --eds-container-pad:clamp(16px,4vw,40px);
239}
240/*# sourceURL=enttec-design-system-inline-css */
241</style>
242<style id='wp-block-library-inline-css' type='text/css'>
243:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}
243.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}.has-text-align-center{text-align:center}.has-text-align-left{text-align:left}.has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style*=border-top-color]){border-top-style:solid}html :where([style*=border-right-color]){border-right-style:solid}html :where([style*=border-bottom-color]){border-bottom-style:solid}html :where([style*=border-left-color]){border-left-style:solid}html :where([style*=border-width]){border-style:solid}html :where([style*=border-top-width]){border-top-style:solid}html :where([style*=border-right-width]){border-right-style:solid}html :where([style*=border-bottom-width]){border-bottom-style:solid}html :where([style*=border-left-width]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}}
244
245/*# sourceURL=wp-block-library-inline-css */
246</style>
247<style id='classic-theme-styles-inline-css' type='text/css'>
248/*! This file is auto-generated */
249.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
250/*# sourceURL=/wp-includes/css/classic-themes.min.css */
251</style>
252<style id='global-styles-inline-css' type='text/css'>
253:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,
2530) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
253.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
254/*# sourceURL=global-styles-inline-css */
255</style>
256
257<style class="optimize_css_2" type="text/css" media="all">body{box-sizing:border-box}.dashicons{font-family:dashicons!important}.bBlocksInnerContent h1{font-size:20px!important}.bBlocksInnerContent h2{font-size:19px!important}.bBlocksInnerContent h3{font-size:18px!important}.bBlocksInnerContent h4{font-size:17px!important}.bBlocksInnerContent h5{font-size:16px!important}.bBlocksInnerContent a,.bBlocksInnerContent button,.bBlocksInnerContent div,.bBlocksInnerContent h6,.bBlocksInnerContent mark,.bBlocksInnerContent p,.bBlocksInnerContent span{font-size:15px!important}.bBlocksInnerContent *{font-family:inherit!important}.columns-1{grid-template-columns:repeat(1,1fr)}.cols-1{-moz-columns:1;column-count:1}.columns-2{grid-template-columns:repeat(2,1fr)}.cols-2{-moz-columns:2;column-count:2}.columns-3{grid-template-columns:repeat(3,1fr)}.cols-3{-moz-columns:3;column-count:3}.columns-4{grid-template-columns:repeat(4,1fr)}.cols-4{-moz-columns:4;column-count:4}.columns-5{grid-template-columns:repeat(5,1fr)}.cols-5{-moz-columns:5;column-count:5}.columns-6{grid-template-columns:repeat(6,1fr)}.cols-6{-moz-columns:6;column-count:6}.columns-7{grid-template-columns:repeat(7,1fr)}.cols-7{-moz-columns:7;column-count:7}.columns-8{grid-template-columns:repeat(8,1fr)}.cols-8{-moz-columns:8;column-count:8}.columns-9{grid-template-columns:repeat(9,1fr)}.cols-9{-moz-columns:9;column-count:9}.columns-10{grid-template-columns:repeat(10,1fr)}.cols-10{-moz-columns:10;column-count:10}.columns-11{grid-template-columns:repeat(11,1fr)}.cols-11{-moz-columns:11;column-count:11}.columns-12{grid-template-columns:repeat(12,1fr)}.cols-12{-moz-columns:12;column-count:12}@media only screen and (max-width:1024px){.columns-tablet-1{grid-template-columns:repeat(1,1fr)}.cols-tablet-1{-moz-columns:1;column-count:1}.columns-tablet-2{grid-template-columns:repeat(2,1fr)}.cols-tablet-2{-moz-columns:2;column-count:2}.columns-tablet-3{grid-template-columns:repeat(3,1fr)}.cols-tablet-3{-moz-columns:3;column-count:3}.columns-tablet-4{grid-template-columns:repeat(4,1fr)}.cols-tablet-4{-moz-columns:4;column-count:4}.columns-tablet-5{grid-template-columns:repeat(5,1fr)}.cols-tablet-5{-moz-columns:5;column-count:5}.columns-tablet-6{grid-template-columns:repeat(6,1fr)}.cols-tablet-6{-moz-columns:6;column-count:6}.columns-tablet-7{grid-template-columns:repeat(7,1fr)}.cols-tablet-7{-moz-columns:7;column-count:7}.columns-tablet-8{grid-template-columns:repeat(8,1fr)}.cols-tablet-8{-moz-columns:8;column-count:8}.columns-tablet-9{grid-template-columns:repeat(9,1fr)}.cols-tablet-9{-moz-columns:9;column-count:9}.columns-tablet-10{grid-template-columns:repeat(10,1fr)}.cols-tablet-10{-moz-columns:10;column-count:10}.columns-tablet-11{grid-template-columns:repeat(11,1fr)}.cols-tablet-11{-moz-columns:11;column-count:11}.columns-tablet-12{grid-template-columns:repeat(12,1fr)}.cols-tablet-12{-moz-columns:12;column-count:12}}@media only screen and (max-width:640px){.columns-mobile-1{grid-template-columns:repeat(1,1fr)}.cols-mobile-1{-moz-columns:1;column-count:1}.columns-mobile-2{grid-template-columns:repeat(2,1fr)}.cols-mobile-2{-moz-columns:2;column-count:2}.columns-mobile-3{grid-template-columns:repeat(3,1fr)}.cols-mobile-3{-moz-columns:3;column-count:3}.columns-mobile-4{grid-template-columns:repeat(4,1fr)}.cols-mobile-4{-moz-columns:4;column-count:4}.columns-mobile-5{grid-template-columns:repeat(5,1fr)}.cols-mobile-5{-moz-columns:5;column-count:5}.columns-mobile-6{grid-template-columns:repeat(6,1fr)}.cols-mobile-6{-moz-columns:6;column-count:6}.columns-mobile-7{grid-template-columns:repeat(7,1fr)}.cols-mobile-7{-moz-columns:7;column-count:7}.columns-mobile-8{grid-template-columns:repeat(8,1fr)}.cols-mobile-8{-moz-columns:8;column-count:8}.columns-mobile-9{grid-template-columns:repeat(9,1fr)}.cols-mobile-9{-moz-columns:9;column-count:9}.columns-mobile-10{grid-template-columns:repeat(10,1fr)}
257.cols-mobile-10{-moz-columns:10;column-count:10}.columns-mobile-11{grid-template-columns:repeat(11,1fr)}.cols-mobile-11{-moz-columns:11;column-count:11}.columns-mobile-12{grid-template-columns:repeat(12,1fr)}.cols-mobile-12{-moz-columns:12;column-count:12}}.bBlocksTextHighlight{background-color:#beff14;border-radius:3px;color:#333;padding:.2em}.bBlocksTextUppercase{text-transform:uppercase}.bBlocksTextUnderline{text-decoration:underline}.bBlocksTextOverline{text-decoration:overline}.bBlocks-carousel-wrapper,.bBlocksColumn,.wp-block-b-blocks-carousel,.wp-block-b-blocks-carousel .swiper,.wp-block-b-blocks-column{min-width:0;width:100%}</style>
258<style id='woocommerce-inline-inline-css' type='text/css'>
259.woocommerce form .form-row .required { visibility: visible; }
260/*# sourceURL=woocommerce-inline-inline-css */
261</style>
262<link rel='stylesheet' id='lenis-style-css' href='https://cdn.enttec.com/website/css/vendor/lenis.css?ver=1.1.13' media='all' />
263<style class="optimize_css_2" type="text/css" media="all">.enttec-geo-bar{position:fixed;top:var(--enttec-adminbar-h,0);left:0;right:0;z-index:1000000;background:#075f80;color:#fff;box-shadow:0 2px 12px rgb(0 0 0 / .18);font-family:inherit;font-size:14px;line-height:1.45}.enttec-geo-bar__inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;flex-wrap:nowrap;gap:12px;padding:9px 20px}.enttec-geo-bar__icon{flex:none;width:18px;height:18px;opacity:.95}.enttec-geo-bar__msg{flex:1 1 auto;min-width:0}.enttec-geo-bar__back{flex:none;display:inline-block;background:rgb(255 255 255 / .15);border:1px solid rgb(255 255 255 / .3);color:#fff;font-weight:600;white-space:nowrap;text-decoration:none;padding:7px 16px;border-radius:999px;transition:background .15s ease,border-color .15s ease}.enttec-geo-bar__back:hover,.enttec-geo-bar__back:focus-visible{background:rgb(255 255 255 / .28);border-color:rgb(255 255 255 / .5);color:#fff}.enttec-geo-bar__close{flex:none;background:#fff0;border:0;color:#fff;font-size:20px;line-height:1;cursor:pointer;width:40px;height:40px;border-radius:50%;opacity:.85;margin-left:-6px;transition:background .15s ease,opacity .15s ease}.enttec-geo-bar__close:hover,.enttec-geo-bar__close:focus-visible{background:rgb(255 255 255 / .18);opacity:1}.enttec-geo-bar--anim{transform:translateY(-100%);transition:transform .3s cubic-bezier(.22,1,.36,1)}.enttec-geo-bar--anim.enttec-geo-bar--in{transform:translateY(0)}.enttec-geo-bar--anim.enttec-geo-bar--out{transform:translateY(-100%)}@media (max-width:600px){.enttec-geo-bar{font-size:12.5px}.enttec-geo-bar__inner{gap:9px;padding:6px 14px}.enttec-geo-bar__icon{display:none}.enttec-geo-bar__msg{line-height:1.3}.enttec-geo-bar__msg-tail{display:none}.enttec-geo-bar__back{padding:5px 12px}.enttec-geo-bar__back-tail{display:none}.enttec-geo-bar__close{width:34px;height:34px;font-size:18px;margin-left:-4px}}@media (prefers-reduced-motion:reduce){.enttec-geo-bar--anim{transition:none}}.enttec-geo-pill{position:fixed;top:18px;left:50%;transform:translate(-50%,-160%);z-index:1000001;display:flex;align-items:center;gap:10px;background:rgb(13 19 25 / .96);color:#fff;padding:10px 18px;border-radius:999px;font-family:inherit;font-size:14px;font-weight:500;line-height:1;box-shadow:0 16px 40px -16px rgb(0 0 0 / .55);opacity:0;transition:transform .35s cubic-bezier(.22,1,.36,1),opacity .25s ease}.enttec-geo-pill--in{transform:translate(-50%,0);opacity:1}.enttec-geo-pill__ring{width:15px;height:15px;border-radius:50%;flex:none;border:2px solid rgb(255 255 255 / .25);border-top-color:#0ea5de;animation:enttec-geo-pill-spin .7s linear infinite}@keyframes enttec-geo-pill-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.enttec-geo-pill{transition:none}.enttec-geo-pill__ring{animation:none}}</style>
264<style class="optimize_css_2" type="text/css" media="all">.slick-slider{position:relative;display:block;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-khtml-user-select:none;-ms-touch-action:pan-y;touch-action:pan-y;-webkit-tap-highlight-color:#fff0}.slick-list{position:relative;display:block;overflow:hidden;margin:0;padding:0}.slick-list:focus{outline:none}.slick-list.dragging{cursor:pointer;cursor:hand}.slick-slider .slick-track,.slick-slider .slick-list{-webkit-transform:translate3d(0,
2640,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.slick-track{position:relative;top:0;left:0;display:block;margin-left:auto;margin-right:auto}.slick-track:before,.slick-track:after{display:table;content:''}.slick-track:after{clear:both}.slick-loading .slick-track{visibility:hidden}.slick-slide{display:none;float:left;height:100%;min-height:1px}[dir='rtl'] .slick-slide{float:right}.slick-slide img{display:block}.slick-slide.slick-loading img{display:none}.slick-slide.dragging img{pointer-events:none}.slick-initialized .slick-slide{display:block}.slick-loading .slick-slide{visibility:hidden}.slick-vertical .slick-slide{display:block;height:auto;border:1px solid #fff0}.slick-arrow.slick-hidden{display:none}.slick-loading .slick-list{background:#fff url(https://www.enttec.com.au/wp-content/themes/eshop/style/images/ajax-loader.gif) center center no-repeat}.slick-prev,.slick-next{font-size:0;line-height:0;position:absolute;top:50%;display:block;width:20px;height:20px;padding:0;-webkit-transform:translate(0,-50%);-ms-transform:translate(0,-50%);transform:translate(0,-50%);cursor:pointer;z-index:111;color:#000;border:none;outline:none;background:#fff0}.slick-prev:hover,.slick-prev:focus,.slick-next:hover,.slick-next:focus{color:#fff0;outline:none;background:#fff0}.slick-prev:hover:before,.slick-prev:focus:before,.slick-next:hover:before,.slick-next:focus:before{opacity:1}.slick-prev.slick-disabled:before,.slick-next.slick-disabled:before{opacity:.25}.slick-prev:before,.slick-next:before{font-size:20px;line-height:1;opacity:.75;color:#000;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:none!important}.slick-prev{left:0}[dir='rtl'] .slick-prev{right:0;left:auto}.slick-next{right:0}[dir='rtl'] .slick-next{right:auto;left:0}.slick-dotted.slick-slider{margin-bottom:30px}.slick-dots{position:absolute;bottom:-25px;display:block;width:100%;padding:0;margin:0;list-style:none;text-align:center}.slick-dots li{position:relative;display:inline-block;width:20px;height:20px;margin:0 5px;padding:0;cursor:pointer}.slick-dots li button{font-size:0;line-height:0;display:block;width:20px;height:20px;padding:5px;cursor:pointer;color:#fff0;border:0;outline:none;background:#fff0}.slick-dots li button:hover,.slick-dots li button:focus{outline:none}</style>
265<style class="optimize_css_2" type="text/css" media="all"></style>
266<style class="optimize_css_2" type="text/css" media="all">.emu_download{display:block;position:fixed;width:100%;height:100%;top:-100%;left:0;bottom:0;overflow:hidden;z-index:9999999;background-color:rgb(35 35 40 / .85);color:#e5e5e5}.emu_download.show{top:0}.emu_download_scroll{overflow:auto;height:100%;max-height:95%;-ms-overflow-style:none;scrollbar-width:none}.emu_download_scroll::-webkit-scrollbar{display:none}.emu_download_container{max-width:768px;padding:32px 16px;position:relative;right:-4000px;opacity:0;margin-left:auto;background-color:#2d2e33;height:100%;-webkit-transition:right 1s,opacity 1s;transition:right 1s,opacity 1s;animation:light 15s infinite}@media(min-width:480px){.emu_download_container{padding:64px 24px}}@media(min-width:768px){.emu_download_container{padding:64px 32px}}@media(min-width:1280px){.emu_download_container{max-width:960px;padding:64px 10% 64px 48px}}.emu_download_container.active{right:0;opacity:1;-webkit-transition:right 1s,opacity 1s;transition:right 1s,opacity 1s}.emu_download_top{display:flex;width:100%;margin-bottom:1.5em}.emu_download_top h2{margin:0 auto 0 0;padding:0;color:#e5e5e5}.emu_download_close{cursor:pointer;position:relative;width:32px;height:32px;opacity:.3}.emu_download_close:hover{opacity:1}.emu_download_close:before,.emu_download_close:after{position:absolute;left:15px;content:" ";height:33px;width:2px;background-color:#fff}.emu_download_close:before{transform:rotate(45deg)}.emu_download_close:after{transform:rotate(-45deg)}.emu_download_close_button{transition:all .3s;display:block;line-height:2em!important;width:100%;padding:8px 2.5em;background-color:#2d67b2!important;color:#fff;font-weight:700;border-radius:4px;opacity:.8;margin-bottom:24px;text-align:center}.emu_download_close_button:hover{opacity:1;color:#fff}@media(min-width:640px){.emu_download_close_button{display:inline-block;width:auto}}.emu_download_text{margin-bottom:24px}.emu_download_form{padding-bottom:32px;position:relative}.emu_download_form:after{content:"";opacity:0;display:block;height:125px;background-repeat:no-repeat;background-size:contain;background-position:center;background-image:url(https://www.enttec.com.au/wp-content/themes/eshop/style/images/EMU_logo_trans.png);transition:opacity 2s;transition-delay:1s}@media(min-width:640px){.emu_download_form:after{position:absolute;bottom:50px;right:0;width:40%}}.emu_download .emu_download_container.active .emu_download_form:after{opacity:1!important}.emu_download .gform_title,.emu_download .gform_heading{display:none!important}.emu_download .gfield_label{color:#b7bad6;font-weight:400!important;font-size:14px!important;margin-bottom:4px!important}.emu_download .gfield_label .gfield_required{color:#9d7df8}.emu_download .gfield_error label,.emu_download .gfield_error legend{color:#b7bad6}.emu_download .gfield input,.emu_download .gfield select{background-color:rgb(229 229 229 / .1);border-radius:4px;outline:none;border:1px solid #516176;line-height:1.2!important;padding:.8em 1em!important;color:#fff!important}.emu_download .gfield input:focus,.emu_download .gfield select:focus{border:1px solid #15a6df}.emu_download .gfield input[type=checkbox]{position:absolute;z-index:-1;opacity:0}
266.emu_download .gfield input[type=checkbox]+label{display:inline-flex;align-items:center;user-select:none}.emu_download .gfield input[type=checkbox]+label:before{content:"";display:inline-block;width:24px;height:24px;flex-shrink:0;flex-grow:0;border-radius:4px;margin-right:.75em;background-repeat:no-repeat;background-position:center center;background-size:50% 50%;border:1px solid #516176}.emu_download .gfield input[type=checkbox]:checked+label:before{border-color:#0b76ef;background-color:#2d67b2;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e")}.emu_download .gform_wrapper .gfield_error [aria-invalid=true]{border:1px solid #9d7df8!important}.emu_download .validation_message{font-size:13px!important;background:#fff0;border:0;padding:0!important;color:#9d7df8}.emu_download .gform_wrapper input[type=button],.emu_download .gform_wrapper input[type=submit]{line-height:2em!important;width:100%;padding:8px 2.5em;background-color:#2d67b2!important;color:#fff}.emu_download .gform_wrapper input[type=button]:hover,.emu_download .gform_wrapper input[type=submit]:hover{color:#fff!important}@media(min-width:640px){.emu_download .gform_wrapper input[type=button],.emu_download .gform_wrapper input[type=submit]{width:auto}}.emu_download .gform_wrapper.gravity-theme .chosen-container-single .chosen-single{font-size:15px;padding:.8em 1em!important;border-radius:4px!important;height:auto!important;background-image:none;background-color:rgb(229 229 229 / .1);outline:none;border:1px solid #516176;box-shadow:none!important;color:#fff}.emu_download .gform_wrapper.gravity-theme .chosen-container-single .chosen-single span{padding:0;line-height:1.2em!important;margin-bottom:0!important}.emu_download .gform_wrapper.gravity-theme .chosen-container-single.chosen-container-active .chosen-single{box-shadow:none!important;border:1px solid #15a6df}.emu_download .gform_wrapper.gravity-theme .chosen-container-single .chosen-drop{margin-top:4px;border:0!important;border-radius:4px!important;background-color:#23282d}.emu_download .gform_wrapper.gravity-theme .chosen-container-single .chosen-search{padding:8px!important}.emu_download .gform_wrapper.gravity-theme .chosen-container-single .chosen-search input{padding:.5em 1em!important;background-color:#fff;background-image:none!important;border:1px solid #516176;border-radius:4px;background-color:rgb(229 229 229 / .1)}.emu_download .gform_wrapper.gravity-theme .chosen-container-single .chosen-results{max-height:200px!important}.emu_download .gform_wrapper.gravity-theme .chosen-container-single .chosen-results::-webkit-scrollbar-track{-webkit-box-shadow:inset 0 0 6px rgb(0 0 0 / .1);background-color:#f5f5f5}.emu_download .gform_wrapper.gravity-theme .chosen-container-single .chosen-results::-webkit-scrollbar{width:6px;background-color:#f5f5f5;margin-left:4px}.emu_download .gform_wrapper.gravity-theme .chosen-container-single .chosen-results::-webkit-scrollbar-thumb{background-color:#15a6df}.emu_download .gform_wrapper.gravity-theme .chosen-container-single .chosen-results li{font-size:14px;line-height:2em;margin-right:4px;color:hsl(0 0% 100% / .5)}.emu_download .gform_wrapper.gravity-theme .chosen-container-single .chosen-results li.highlighted{border-radius:4px;background-image:none;background-color:#0b76ef;color:#fff}.emu_download .emu_download_region .chosen-search{display:none}@media(min-width:640px){.emu_download .gform_confirmation_message_13{max-width:55%}}.emu_download .gform_submission_error{color:#fff!important;font-weight:400!important}.emu_download .gform_validation_errors{background:#ff6a6a;border:1px solid #c35137;padding:4px 16px 4px 48px;margin-bottom:24px}.emu_download input:-webkit-autofill,.emu_download input:-webkit-autofill:hover,.emu_download input:-webkit-autofill:focus,.emu_download input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 3
2660px #fff inset!important}@-webkit-keyframes light{0%{-webkit-box-shadow:-100px 0 60px 100px rgb(37 107 144 / .15)}15%{-webkit-box-shadow:-100px 0 100px 100px rgb(217 27 145 / .15)}45%{-webkit-box-shadow:-100px 0 100px 100px rgb(86 37 144 / .15)}65%{-webkit-box-shadow:-100px 0 75px 100px rgb(129 37 144 / .15)}85%{-webkit-box-shadow:-100px 0 150px 100px rgb(10 79 171 / .15)}100%{-webkit-box-shadow:-100px 0 60px 100px rgb(37 107 144 / .15)}}@keyframes light{0%{box-shadow:-100px 0 100px 100px rgb(37 107 144 / .15)}15%{box-shadow:-100px 0 100px 100px rgb(217 27 145 / .15)}45%{box-shadow:-100px 0 100px 100px rgb(86 37 144 / .15)}65%{box-shadow:-100px 0 75px 100px rgb(129 37 144 / .15)}85%{box-shadow:-100px 0 150px 100px rgb(10 79 171 / .15)}100%{box-shadow:-100px 0 100px 100px rgb(37 107 144 / .15)}}</style>
267<style class="optimize_css_2" type="text/css" media="all">.elm_download{display:block;position:fixed;width:100%;height:100%;top:-100%;left:0;bottom:0;overflow:hidden;z-index:9999999;background-color:rgb(35 35 40 / .85);color:#444}.elm_download.show{top:0}.elm_download_scroll{overflow:auto;height:100%;max-height:95%;-ms-overflow-style:none;scrollbar-width:none}.elm_download_scroll::-webkit-scrollbar{display:none}.elm_download_container{max-width:768px;padding:32px 16px;position:relative;right:-4000px;opacity:0;margin-left:auto;background-color:#fff;height:100%;-webkit-transition:right 1s,opacity 1s;transition:right 1s,opacity 1s;animation:light 15s infinite}@media (min-width:480px){.elm_download_container{padding:64px 24px}}@media (min-width:768px){.elm_download_container{padding:64px 32px}}@media (min-width:1280px){.elm_download_container{max-width:960px;padding:64px 10% 64px 48px}}.elm_download_container.active{right:0;opacity:1;-webkit-transition:right 1s,opacity 1s;transition:right 1s,opacity 1s}.elm_download_top{display:flex;width:100%;margin-bottom:1.5em}.elm_download_top h2{margin:0 auto 0 0;padding:0;color:#444}.elm_download_close{cursor:pointer;position:relative;width:32px;height:32px;opacity:.3}.elm_download_close:hover{opacity:1}.elm_download_close:before,.elm_download_close:after{position:absolute;left:15px;content:" ";height:33px;width:2px;background-color:#000}.elm_download_close:before{transform:rotate(45deg)}.elm_download_close:after{transform:rotate(-45deg)}.elm_download_close_button{transition:all 0.3s;display:block;line-height:2em!important;width:100%;padding:8px 2.5em;background-color:#2D67B2!important;color:white!important;font-weight:700;border-radius:4px;opacity:.8;margin-bottom:24px;text-align:center}.elm_download_close_button:hover{opacity:1;color:#fff}@media (min-width:640px){.elm_download_close_button{display:inline-block;width:auto}}.elm_download_text{margin-bottom:24px}.elm_download_form{min-height:160px;padding-bottom:32px;position:relative}.elm_download_form:after{content:"";opacity:0;display:block;height:160px;background-repeat:no-repeat;background-size:contain;background-position:center;background-image:url(https://www.enttec.com.au/wp-content/themes/eshop/style/images/ELM_logo.png);transition:opacity 2s;transition-delay:1s}@media (min-width:640px){.elm_download_form:after{position:absolute;bottom:50px;right:0;width:15%}}.elm_download .elm_download_container.active .elm_download_form:after{opacity:1!important}.elm_download .gform_title,.elm_download .gform_heading{display:none!important}.elm_download .gfield_label{color:#676767;font-weight:400!important;font-size:14px!important;margin-bottom:4px!important}.elm_download .gfield_label .gfield_required{color:#f13955}.elm_download .gfield_error label,.elm_download .gfield_error legend{color:#c35137}.elm_download .gfield input,.elm_download .gfield select{background-color:rgb(229 229 229 / .1);border-radius:4px;outline:none;border:1px solid #959595;line-height:1.2!important;padding:.8em 1em!important;color:#444444!important}.elm_download .gfield input:focus,.elm_download .gfield select:focus{border:1px solid #15a6df}.elm_download .gfield input[type=checkbox]{position:absolute;z-index:-1;opacity:0}.elm_download .gfield input[type=checkbox]+label{display:inline-flex;align-items:center;user-select:none}.elm_download .gfield input[type=checkbox]+label:before{content:"";display:inline-block;width:24px;height:24px;flex-shrink:0;flex-grow:0;border-radius:4px;margin-right:.75em;background-repeat:no-repeat;background-position:center center;background-size:50% 50%;border:1px solid #959595}.elm_download .gfield input[type=checkbox]:checked+label:before{border-color:#0b76ef;background-color:#2D67B2;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e")}.elm_download .gform_wrapper .gfield_error [aria-invalid=true]{border:1px solid #c35137!important}.elm_download .validation_message{font-size:13px!important;background:#fff0;border:0;padding:0!important;color:#c35137}.elm_download .gform_wrapper input[type=button],.elm_download .gform_wrapper input[type=submit]{line-height:2em!important;width:100%;padding:8px 2.5em;background-color:#2D67B2!important;color:#fff}.elm_download .gform_wrapper input[type=button]:hover,.elm_download .gform_wrapper input[type=submit]:hover{color:white!important}@media (min-width:640px){.elm_download .gform_wrapper input[type=button],.elm_download .gform_wrapper input[type=submit]{width:auto}}.elm_download .gform_wrapper.gravity-theme .chosen-container-single .chosen-single{font-size:15px;padding:.8em 1em!important;border-radius:4px!important;height:auto!important;background-image:none;background-color:rgb(229 229 229 / .1);outline:none;border:1px solid #959595;box-shadow:none!important;color:#444}.elm_download .gform_wrapper.gravity-theme .chosen-container-single .chosen-single span{padding:0;line-height:1.2em!important;margin-bottom:0!important}.elm_download .gform_wrapper.gravity-theme .chosen-container-single.chosen-container-active .chosen-single{box-shadow:none!important;border:1px solid #15a6df}.elm_download .gform_wrapper.gravity-theme .chosen-container-single .chosen-drop{margin-top:4px;border:0!important;border-radius:4px!important;background-color:#f8f8f8}.elm_download .gform_wrapper.gravity-theme .chosen-container-single .chosen-search{padding:8px!important}.elm_download .gform_wrapper.gravity-theme .chosen-container-single .chosen-search input{padding:.5em 1em!important;background-color:#fff;background-image:none!important;border:1px solid #959595;border-radius:4px;background-color:rgb(229 229 229 / .1)}.elm_download .gform_wrapper.gravity-theme .chosen-container-single .chosen-results{max-height:200px!important}.elm_download .gform_wrapper.gravity-theme .chosen-container-single .chosen-results::-webkit-scrollbar-track{-webkit-box-shadow:inset 0 0 6px rgb(0 0 0 / .1);background-color:#F5F5F5}.elm_download .gform_wrapper.gravity-theme .chosen-container-single .chosen-results::-webkit-scrollbar{width:6px;background-color:#F5F5F5;margin-left:4px}.elm_download .gform_wrapper.gravity-theme .chosen-container-single .chosen-results::-webkit-scrollbar-thumb{background-color:#15a6df}.elm_download .gform_wrapper.gravity-theme .chosen-container-single .chosen-results li{font-size:14px;line-height:2em;margin-right:4px;color:#444}.elm_download .gform_wrapper.gravity-theme .chosen-container-single .chosen-results li.highlighted{border-radius:4px;background-image:none;background-color:#0b76ef;color:#fff}.elm_download .elm_download_region .chosen-search{display:none}@media (min-width:640px){.elm_download .gform_confirmation_message_13{max-width:55%}}.elm_download .gform_submission_error{color:#fff!important;font-weight:400!important}.elm_download .gform_validation_errors{background:#ff6a6a;border:1px solid #c35137;padding:4px 16px 4px 48px;margin-bottom:24px}.elm_download input:-webkit-autofill,.elm_download input:-webkit-autofill:hover,.elm_download input:-webkit-autofill:focus,.elm_download input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 3
2670px #fff inset!important}@-webkit-keyframes light{0%{-webkit-box-shadow:-100px 0 60px 100px rgb(37 107 144 / .15)}15%{-webkit-box-shadow:-100px 0 100px 100px rgb(217 27 145 / .15)}45%{-webkit-box-shadow:-100px 0 100px 100px rgb(86 37 144 / .15)}65%{-webkit-box-shadow:-100px 0 75px 100px rgb(129 37 144 / .15)}85%{-webkit-box-shadow:-100px 0 150px 100px rgb(10 79 171 / .15)}100%{-webkit-box-shadow:-100px 0 60px 100px rgb(37 107 144 / .15)}}@keyframes light{0%{box-shadow:-100px 0 100px 100px rgb(37 107 144 / .15)}15%{box-shadow:-100px 0 100px 100px rgb(217 27 145 / .15)}45%{box-shadow:-100px 0 100px 100px rgb(86 37 144 / .15)}65%{box-shadow:-100px 0 75px 100px rgb(129 37 144 / .15)}85%{box-shadow:-100px 0 150px 100px rgb(10 79 171 / .15)}100%{box-shadow:-100px 0 100px 100px rgb(37 107 144 / .15)}}</style>
268<style class="optimize_css_2" type="text/css" media="all">.enttec-locale-switcher{position:relative;display:inline-flex;align-items:center;vertical-align:middle;margin:0 .25rem;line-height:1}body .enttec-locale-switcher .enttec-locale-switcher__toggle,.enttec-locale-switcher .enttec-locale-switcher__toggle{display:inline-flex!important;align-items:center!important;gap:0.4rem!important;background:transparent!important;border:1px solid rgb(0 0 0 / .5)!important;border-radius:50rem!important;padding:.5rem 1.25rem!important;margin:0!important;font-size:14px!important;line-height:1.5!important;color:inherit!important;cursor:pointer!important;height:auto!important;box-shadow:none!important;transition:background-color .15s ease,color .15s ease,border-color .15s ease;-webkit-appearance:none;appearance:none}.enttec-locale-switcher .enttec-locale-switcher__toggle:hover,.enttec-locale-switcher .enttec-locale-switcher__toggle[aria-expanded="true"]{background-color:#343a40!important;color:#fff!important;border-color:#343a40!important}.enttec-locale-switcher .enttec-locale-switcher__toggle:focus{outline:none!important;box-shadow:0 0 0 3px rgb(52 58 64 / .15)!important}.enttec-locale-switcher__globe{font-size:14px;opacity:.75}.enttec-locale-switcher__current{line-height:1.5;white-space:nowrap}.enttec-locale-switcher__chevron{display:inline-flex;align-items:center;margin-left:.15rem;opacity:.7}.enttec-locale-switcher__chevron svg{display:block;width:10px;height:6px}.enttec-locale-switcher__menu{position:absolute;top:calc(100% + 6px);right:0;z-index:1050;list-style:none;margin:0;padding:6px 0;min-width:100%;background:#fff;border:1px solid rgb(0 0 0 / .08);border-radius:12px;box-shadow:0 8px 24px rgb(0 0 0 / .12),0 2px 6px rgb(0 0 0 / .06);font-size:14px;line-height:1.5;overflow:hidden}.enttec-locale-switcher__menu[hidden]{display:none!important}.enttec-locale-switcher__option{display:flex;align-items:center;padding:.5rem 1.25rem;cursor:pointer;color:#212529;white-space:nowrap;transition:background-color .12s ease}.enttec-locale-switcher__option:hover,.enttec-locale-switcher__option:focus{background-color:rgb(52 58 64 / .08)}.enttec-locale-switcher__option[aria-selected="true"]{background-color:rgb(52 58 64 / .12);font-weight:600}.enttec-locale-switcher__option[aria-selected="true"]::after{content:"✓";margin-left:auto;padding-left:.75rem;color:#343a40;font-weight:600}.enttec-locale-switcher__option-label{line-height:1.5}.enttec-locale-switcher--single .enttec-locale-switcher__label{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1.25rem;font-size:14px;line-height:1.5;color:rgb(0 0 0 / .6);border:1px solid rgb(0 0 0 / .15);border-radius:50rem}.enttec-locale-switcher .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}</style>
269<style class="optimize_css_2" type="text/css" media="all">@font-face{font-family:'Source Sans 3';font-style:italic;font-weight:200 900;font-display:swap;src:url(https://www.enttec.com.au/wp-content/themes/eshop/vendor/fonts/css/../files/source-sans-3-nwpMtKy2OAdR1K-IwhWudF-R3woqauLY1HY.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'Source Sans 3';font-style:italic;font-weight:200 900;font-display:swap;src:url(https://www.enttec.com.au/wp-content/themes/eshop/vendor/fonts/css/../files/source-sans-3-nwpMtKy2OAdR1K-IwhWudF-R3woqY-LY1HY.woff2) format('woff2');
269unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Source Sans 3';font-style:italic;font-weight:200 900;font-display:swap;src:url(https://www.enttec.com.au/wp-content/themes/eshop/vendor/fonts/css/../files/source-sans-3-nwpMtKy2OAdR1K-IwhWudF-R3woqa-LY1HY.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:'Source Sans 3';font-style:italic;font-weight:200 900;font-display:swap;src:url(https://www.enttec.com.au/wp-content/themes/eshop/vendor/fonts/css/../files/source-sans-3-nwpMtKy2OAdR1K-IwhWudF-R3woqZOLY1HY.woff2) format('woff2');unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:'Source Sans 3';font-style:italic;font-weight:200 900;font-display:swap;src:url(https://www.enttec.com.au/wp-content/themes/eshop/vendor/fonts/css/../files/source-sans-3-nwpMtKy2OAdR1K-IwhWudF-R3woqaOLY1HY.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Source Sans 3';font-style:italic;font-weight:200 900;font-display:swap;src:url(https://www.enttec.com.au/wp-content/themes/eshop/vendor/fonts/css/../files/source-sans-3-nwpMtKy2OAdR1K-IwhWudF-R3woqaeLY1HY.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Source Sans 3';font-style:italic;font-weight:200 900;font-display:swap;src:url(https://www.enttec.com.au/wp-content/themes/eshop/vendor/fonts/css/../files/source-sans-3-nwpMtKy2OAdR1K-IwhWudF-R3woqZ-LY.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:200 900;font-display:swap;src:url(https://www.enttec.com.au/wp-content/themes/eshop/vendor/fonts/css/../files/source-sans-3-nwpStKy2OAdR1K-IwhWudF-R3wIaZfrc.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:200 900;font-display:swap;src:url(https://www.enttec.com.au/wp-content/themes/eshop/vendor/fonts/css/../files/source-sans-3-nwpStKy2OAdR1K-IwhWudF-R3wsaZfrc.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:200 900;font-display:swap;src:url(https://www.enttec.com.au/wp-content/themes/eshop/vendor/fonts/css/../files/source-sans-3-nwpStKy2OAdR1K-IwhWudF-R3wMaZfrc.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:200 900;font-display:swap;src:url(https://www.enttec.com.au/wp-content/themes/eshop/vendor/fonts/css/../files/source-sans-3-nwpStKy2OAdR1K-IwhWudF-R3wwaZfrc.woff2) format('woff2');unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:200 900;font-display:swap;src:url(https://www.enttec.com.au/wp-content/themes/eshop/vendor/fonts/css/../files/source-sans-3-nwpStKy2OAdR1K-IwhWudF-R3wAaZfrc.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:200 900;font-display:swap;src:url(https://www.enttec.com.au/wp-content/themes/eshop/vendor/fonts/css/../files/source-sans-3-nwpStKy2OAdR1K-IwhWudF-R3wEaZfrc.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:200 900;font-display:swap;src:url(https://www.enttec.com.au/wp-content/themes/eshop/vendor/fonts/css/../files/source-sans-3-nwpStKy2OAdR1K-IwhWudF-R3w8aZQ.woff2) format('woff2');
269unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}</style>
270<style class="optimize_css_2" type="text/css" media="all">@font-face{font-family:'Montserrat';font-style:italic;font-weight:100 900;font-display:swap;src:url(https://www.enttec.com.au/wp-content/themes/eshop/vendor/fonts/css/../files/montserrat-JTUQjIg1_i6t8kCHKm459WxRxC7mw9c.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'Montserrat';font-style:italic;font-weight:100 900;font-display:swap;src:url(https://www.enttec.com.au/wp-content/themes/eshop/vendor/fonts/css/../files/montserrat-JTUQjIg1_i6t8kCHKm459WxRzS7mw9c.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Montserrat';font-style:italic;font-weight:100 900;font-display:swap;src:url(https://www.enttec.com.au/wp-content/themes/eshop/vendor/fonts/css/../files/montserrat-JTUQjIg1_i6t8kCHKm459WxRxi7mw9c.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Montserrat';font-style:italic;font-weight:100 900;font-display:swap;src:url(https://www.enttec.com.au/wp-content/themes/eshop/vendor/fonts/css/../files/montserrat-JTUQjIg1_i6t8kCHKm459WxRxy7mw9c.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Montserrat';font-style:italic;font-weight:100 900;font-display:swap;src:url(https://www.enttec.com.au/wp-content/themes/eshop/vendor/fonts/css/../files/montserrat-JTUQjIg1_i6t8kCHKm459WxRyS7m.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Montserrat';font-style:normal;font-weight:100 900;font-display:swap;src:url(https://www.enttec.com.au/wp-content/themes/eshop/vendor/fonts/css/../files/montserrat-JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'Montserrat';font-style:normal;font-weight:100 900;font-display:swap;src:url(https://www.enttec.com.au/wp-content/themes/eshop/vendor/fonts/css/../files/montserrat-JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Montserrat';font-style:normal;font-weight:100 900;font-display:swap;src:url(https://www.enttec.com.au/wp-content/themes/eshop/vendor/fonts/css/../files/montserrat-JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Montserrat';font-style:normal;font-weight:100 900;font-display:swap;src:url(https://www.enttec.com.au/wp-content/themes/eshop/vendor/fonts/css/../files/montserrat-JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Montserrat';font-style:normal;font-weight:100 900;font-display:swap;src:url(https://www.enttec.com.au/wp-content/themes/eshop/vendor/fonts/css/../files/montserrat-JTUSjIg1_i6t8kCHKm459Wlhyw.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}</style>
271<link rel='stylesheet' id='swiper-css' href='https://www.enttec.com.au/wp-content/plugins/b-blocks/assets/css/swiper.min.css?ver=8.0.7' media='all' />
272<style id='enttec-legal-inline-css' type='text/css'>
273.lgl-doc{--ink:var(--enttec-ink);--muted:var(--enttec-muted);--line:var(--enttec-line);--brand:var(--enttec-blue);
273--accent:var(--enttec-blue);--panel:var(--enttec-panel);
274  max-width:760px;margin:0 auto;padding:48px 22px 72px;
275  font-family:inherit;   /* use the site's own font, not a system stack */
276  color:var(--ink);font-size:17px;line-height:1.7;text-align:left;-webkit-font-smoothing:antialiased;}
277.lgl-doc *{box-sizing:border-box;}
278.lgl-banner{background:#fff8e6;border:1px solid #ecd9a0;border-left:4px solid #e0a800;border-radius:8px;
279  padding:14px 18px;margin:0 0 34px;font-size:15px;line-height:1.55;color:#5b4a17;}
280.lgl-banner strong{color:#3d3208;}
281.lgl-head{border-bottom:2px solid var(--line);padding-bottom:22px;margin-bottom:6px;}
282.lgl-icon{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:15px;
283  background:rgba(14,165,223,.12);color:var(--brand);margin-bottom:18px;transform-origin:center;
284  animation:lgl-pop .55s cubic-bezier(.2,.7,.3,1) both, lgl-idle 5s ease-in-out 1.8s infinite;
285  transition:box-shadow .2s ease;}
286.lgl-icon svg{width:30px;height:30px;}
287.lgl-icon:hover{box-shadow:0 5px 16px rgba(14,165,223,.28);}
288/* draw-on: each stroke traces itself in (pathLength=1 normalises the length) */
289.lgl-icon svg path{stroke-dasharray:1;stroke-dashoffset:1;animation:lgl-draw .9s ease .2s forwards;}
290.lgl-icon svg path:nth-of-type(2){animation-delay:.55s;}
291.lgl-icon svg path:nth-of-type(3){animation-delay:.7s;}
292.lgl-icon svg circle{opacity:0;animation:lgl-fade .35s ease 1s forwards;}
293@keyframes lgl-pop{from{opacity:0;transform:translateY(10px) scale(.8);}to{opacity:1;transform:none;}}
294@keyframes lgl-draw{to{stroke-dashoffset:0;}}
295@keyframes lgl-fade{to{opacity:1;}}
296/* gentle nudge once every 5s (rests ~4s, then a subtle bob + wiggle) */
297@keyframes lgl-idle{0%,80%,100%{transform:translateY(0) rotate(0);}84%{transform:translateY(-4px) rotate(-5deg);}88%{transform:translateY(0) rotate(4deg);}92%{transform:translateY(-1px) rotate(-2deg);}96%{transform:translateY(0) rotate(0);}}
298.lgl-eyebrow{font-size:12.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--accent);font-weight:700;margin-bottom:9px;}
299.lgl-title{font-size:35px;line-height:1.12;font-weight:500;margin:0 0 11px;color:var(--ink);}
300.lgl-meta{font-size:14px;color:var(--muted);}
301.lgl-toc{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:20px 24px;margin:30px 0 44px;}
302.lgl-toc strong{display:block;font-size:12.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-bottom:12px;}
303.lgl-toc ul{list-style:none;margin:0;padding:0;columns:230px;column-gap:34px;}
304.lgl-toc li{margin:0 0 9px;break-inside:avoid;}
305.lgl-toc a{color:var(--ink);text-decoration:none;border-bottom:1px solid transparent;transition:color .15s,border-color .15s;}
306.lgl-toc a:hover,.lgl-toc a:focus{color:var(--accent);border-bottom-color:var(--brand);}
307.lgl-body h2{font-size:23px;font-weight:700;margin:46px 0 15px;line-height:1.25;scroll-margin-top:24px;}
308.lgl-body h3{font-size:18px;font-weight:600;margin:30px 0 10px;color:#2a3647;}
309.lgl-body h4{font-size:16px;font-weight:650;margin:22px 0 8px;color:var(--muted);}
310.lgl-body p{margin:0 0 16px;}
311.lgl-body ul,.lgl-body ol{margin:0 0 18px;padding-left:26px;}
312.lgl-body ul{list-style:disc outside !important;}
313.lgl-body ol{list-style:decimal outside !important;}
314.lgl-body li{display:list-item !important;list-style:inherit !important;margin:0 0 8px;padding-left:4px;}
315.lgl-body li::marker{color:var(--muted);}
316.lgl-body a{color:var(--accent);text-decoration:underline;text-underline-offset:2px;}
317.lgl-tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 0 24px;}
318.lgl-body blockquote{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:8px;padding:16px 20px;margin:0 0 18px;}
319.lgl-body blockquote p:last-child{margin-bottom:0;}
320.lgl-body table{width:100%;min-width:520px;border-collapse:collapse;margin:0;font-size:15px;}
321.lgl-body th,.lgl-body td{border:1px solid var(--line);padding:9px 13px;text-align:left;vertical-align:top;}
322.lgl-body th{background:var(--panel);font-weight:650;}
323.lgl-body h2:target{background:#fff8e6;border-radius:6px;box-shadow:0 0 0 8px #fff8e6;}
324.lgl-idx ul{list-style:none;margin:0;padding:0;}
325.lgl-idx li{border:1px solid var(--line);border-radius:10px;padding:16px 20px;margin:0 0 14px;}
326.lgl-idx li a{font-size:19px;font-weight:650;color:var(--accent);text-decoration:none;}
327.lgl-idx li a:hover{text-decoration:underline;}
328/* Small muted qualifier, e.g. the timezone conversions under a deadline. */
329.lgl-note{display:block;margin-top:5px;font-size:14px;color:var(--muted);line-height:1.5;}
330.lgl-idx .lgl-note{display:block;margin-top:6px;font-size:14.5px;color:var(--muted);line-height:1.5;}
331@media (max-width:600px){.lgl-doc{font-size:16px;padding:8px 16px 52px;}.lgl-title{font-size:27px;}.lgl-toc ul{columns:1;}}
332html{scroll-behavior:smooth;}
333@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}.lgl-toc a{transition:none;}.lgl-icon{animation:none;transition:none;}.lgl-icon:hover{transform:none;}
334  .lgl-icon svg path{animation:none;stroke-dashoffset:0;}.lgl-icon svg circle{animation:none;opacity:1;}}
335/* Hide the theme's page-title + breadcrumb block; the page renders its own title. */
336.title_breadcrumb{display:none !important;}
337/*# sourceURL=enttec-legal-inline-css */
338</style>
339<style id='kadence-blocks-global-variables-inline-css' type='text/css'>
340:root {--global-kb-font-size-sm:clamp(0.8rem, 0.73rem + 0.217vw, 0.9rem);--global-kb-font-size-md:clamp(1.1rem, 0.995rem + 0.326vw, 1.25rem);--global-kb-font-size-lg:clamp(1.75rem, 1.576rem + 0.543vw, 2rem);
340--global-kb-font-size-xl:clamp(2.25rem, 1.728rem + 1.63vw, 3rem);--global-kb-font-size-xxl:clamp(2.5rem, 1.456rem + 3.26vw, 4rem);--global-kb-font-size-xxxl:clamp(2.75rem, 0.489rem + 7.065vw, 6rem);}:root {--global-palette1: #3182CE;--global-palette2: #2B6CB0;--global-palette3: #1A202C;--global-palette4: #2D3748;--global-palette5: #4A5568;--global-palette6: #718096;--global-palette7: #EDF2F7;--global-palette8: #F7FAFC;--global-palette9: #ffffff;}
341/*# sourceURL=kadence-blocks-global-variables-inline-css */
342</style>
343<link rel='stylesheet' id='wpo_min-header-0-css' href='https://www.enttec.com.au/wp-content/cache/wpo-minify/1791192652/assets/wpo-minify-header-6f9654fa.min.css' media='all' />
344<script type="text/javascript" id="woocommerce-google-analytics-integration-gtag-js-after">
345/* <![CDATA[ */
346/* Google Analytics for WooCommerce (gtag.js) */
347					window.dataLayer = window.dataLayer || [];
348					function gtag(){dataLayer.push(arguments);}
349					// Set up default consent state.
350					for ( const mode of [{"analytics_storage":"denied","ad_storage":"denied","ad_user_data":"denied","ad_personalization":"denied","region":["AT","BE","BG","HR","CY","CZ","DK","EE","FI","FR","DE","GR","HU","IE","IT","LV","LT","LU","MT","NL","PL","PT","RO","SK","SI","ES","SE","IS","LI","NO","GB","CH","AE"]}] || [] ) {
351						gtag( "consent", "default", { "wait_for_update": 500, ...mode } );
352					}
353					gtag("js", new Date());
354					gtag("set", "developer_id.dOGY3NW", true);
355					gtag("config", "G-JPJJYZDMPX", {"track_404":true,"allow_google_signals":false,"logged_in":false,"linker":{"domains":[],"allow_incoming":false},"custom_map":{"dimension1":"logged_in"}});
356//# sourceURL=woocommerce-google-analytics-integration-gtag-js-after
357/* ]]> */
358</script>
vendor: 1 bytes, line 358
358
359<script type="text/javascript" src="https://www.enttec.com.au/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script>
vendor: 1 bytes, line 359
359
360<script type="text/javascript" src="https://www.enttec.com.au/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" id="jquery-migrate-js"></script>
vendor: 1 bytes, line 360
360
361<script type="text/javascript" src="https://www.enttec.com.au/wp-content/plugins/woocommerce/assets/js/select2/select2.full.min.js?ver=4.0.3-wc.10.6.1" id="wc-select2-js" defer="defer" data-wp-strategy="defer"></script>
vendor: 1 bytes, line 361
361
362<script type="text/javascript" src="https://www.enttec.com.au/wp-content/plugins/woocommerce/assets/js/jquery-blockui/jquery.blockUI.min.js?ver=2.7.0-wc.10.6.1" id="wc-jquery-blockui-js" defer="defer" data-wp-strategy="defer"></script>
vendor: 1 bytes, line 362
362
363<script type="text/javascript" src="https://www.enttec.com.au/wp-content/plugins/woocommerce/assets/js/js-cookie/js.cookie.min.js?ver=2.1.4-wc.10.6.1" id="wc-js-cookie-js" defer="defer" data-wp-strategy="defer"></script>
vendor: 1 bytes, line 363
363
364<script type="text/javascript" id="woocommerce-js-extra">
365/* <![CDATA[ */
366var woocommerce_params = {"ajax_url":"/wp-admin/admin-ajax.php","wc_ajax_url":"https://www.enttec.com.au/?wc-ajax=%%endpoint%%","i18n_password_show":"Show password","i18n_password_hide":"Hide password"};
367//# sourceURL=woocommerce-js-extra
368/* ]]> */
369</script>
vendor: 1 bytes, line 369
369
370<script type="text/javascript" src="https://www.enttec.com.au/wp-content/plugins/woocommerce/assets/js/frontend/woocommerce.min.js?ver=10.6.1" id="woocommerce-js" defer="defer" data-wp-strategy="defer"></script>
370
371<link rel="https://api.w.org/" href="https://www.enttec.com.au/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://www.enttec.com.au/wp-json/wp/v2/pages/2946" /><style id="enttec-nav-style-fixes">
372footer a:hover{color:inherit}
373#navbar a.btn.btn-primary:hover,#navbar a.btn.btn-primary:focus,#navbar a.btn.btn-primary:active{opacity:1 !important;background-color:#0a86b4 !important;border-color:#0a86b4 !important;color:#fff !important}
374#navbar{align-items:center}
375#navbar.fixed-bg.scroll-down,#navbar.fixed-bg.scroll-down *{pointer-events:none !important}
376#navbar .enttec-nav-current > a,#navbar .enttec-nav-current > .mega-menu-link{color:#0EA5DF !important}
377#enttec-mm-preview a.enttec-nav-dd-current,#enttec-mm-mobile a.enttec-nav-dd-current{color:#0EA5DF !important;font-weight:600}
378#enttec-mm-rail .mm-rail-item.mm-rail-current{color:#0EA5DF !important}
379</style>
380<meta name="google-site-verification" content="ZRF78SKPmrgZm4Sz6zsi4JeL53yNZsBOIeFVpNFG1KY" />
381<meta name="google-site-verification" content="dm9lZ2JrK7setqcZt_JAOsEw4P8ZoQEtwLjMBfBlMFQ" />
382
383	<noscript><style>.woocommerce-product-gallery{ opacity: 1 !important; }</style></noscript>
384	<style id="enttec-subnav-fix">
385/* Dock the subnav directly below the navbar so the navbar never covers it and it
386   stays clickable; slide it up to the top edge when the navbar is hidden.
387
388   BOTH DOCKS ARE MEASURED, NOT HARDCODED. These were 70px and 0, which is the right
389   answer only for an anonymous visitor on a page with no fixed banner. Signed in, the
390   WP toolbar takes the first 32px and the navbar is pushed to 32..102, so a bar docked
391   at 70 had its top 32px hidden BEHIND the navbar, and docked at 0 had its top 32px
392   behind the toolbar. Either way the labels were sliced in half. Measured on the ELM
393   2026 page at 1440 on 2026-08-20.
394
395   --enttec-chrome-h is toolbar + fixed banners + navbar height; adminbar-h + fixed-h
396   is the same sum WITHOUT the navbar. So the two docks read as exactly "below the
397   navbar" and "where the navbar was". Published by themes/eshop/js/header-stack.js.
398   This also fixes the geo-redirect-bar case, which the flat 70px ignored entirely.
399
400   The fallbacks are the OLD literals on purpose: with no toolbar and no banner both
401   expressions compute to 70 and 0, so visitors get byte-identical geometry and a
402   no-JS page keeps the behaviour it had. */
403nav.subnav,nav.etv-subnav{top:var(--enttec-chrome-h, 70px) !important;z-index:30;transition:top .3s ease}
404nav.subnav.nav-hidden,nav.etv-subnav.nav-hidden{top:calc(var(--enttec-adminbar-h, 0px) + var(--enttec-fixed-h, 0px)) !important;transform:none !important;opacity:1 !important;visibility:visible !important;pointer-events:auto !important}
405/* Software-rebuild anchor nav (.sr-anchor-nav). It pins itself at top:69px (below
406   the navbar) via the page's own JS. When the main navbar hides on scroll-down,
407   drop it to the top edge so it docks flush instead of floating with a gap,
408   mirrors how .product_nav behaves on single-product pages. Smoothly animated.
409   "The top edge" is below the toolbar when there is one, same reasoning as the
410   subnav docks above; 0 for anonymous visitors. */
411.sr-wrap .sr-anchor-nav.is-pinned{transition:top .3s ease}
412.sr-wrap .sr-anchor-nav.is-pinned.nav-hidden{top:calc(var(--enttec-adminbar-h, 0px) + var(--enttec-fixed-h, 0px)) !important}
413</style>
414
415<link rel="icon" href="https://cdn.enttec.com/website/brand/favicon/favicon.ico?v=1" sizes="32x32">
416<link rel="icon" type="image/png" sizes="32x32" href="https://cdn.enttec.com/website/brand/favicon/favicon-32.png?v=1">
417<link rel="icon" type="image/png" sizes="16x16" href="https://cdn.enttec.com/website/brand/favicon/favicon-16.png?v=1">
418<link rel="apple-touch-icon" href="https://cdn.enttec.com/website/brand/favicon/apple-touch-icon.png?v=1">
419		<style type="text/css" id="wp-custom-css">
420			.terms-of-trade header{display:none !important;}
421.terms-of-trade #container{max-width:100% !important}
422.terms-of-trade main{padding: 0 !important}
423
424ol[type="A"],
425ul[type="A"]{
426	list-style-type: upper-alpha;
427}
428
429video {
430	aspect-ratio: auto !important;
431}
432
433body.emu-sound-to-light-controller .product-details-top { display: none !important; }
434
435body.emu-sound-to-light-controller.newLookEnabled .woocommerce-notices-wrapper.show {
436	display:none !important;
437}
438
439.emu_download_form .gform-footer input[type=submit] { margin-top: 0em !important; }
440
441.emu_download_form img.gform_ajax_spinner { height: 16px !important; }
442
443.emu_download_form .gform_footer { align-items: center; gap: 10px; }		</style>
444		<style class="megamenu-css">@charset "UTF-8";/** THIS FILE IS AUTOMATICALLY GENERATED - DO NOT MAKE MANUAL EDITS! **//** Custom CSS should be added to Mega Menu > Menu Themes > Custom Styling **/.mega-menu-last-modified-1791221708 { content: 'Monday 5th October 2026 17:35:08 UTC'; }#mega-menu-wrap-header-menu, #mega-menu-wrap-header-menu #mega-menu-header-menu, #mega-menu-wrap-header-menu #mega-menu-header-menu ul.mega-sub-menu, #mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-item, #mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-row, #mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-column, #mega-menu-wrap-header-menu #mega-menu-header-menu a.mega-menu-link, #mega-menu-wrap-header-menu #mega-menu-header-menu span.mega-indicator, #mega-menu-wrap-header-menu #mega-menu-header-menu span.mega-menu-badge, #mega-menu-wrap-header-menu button.mega-close, #mega-menu-wrap-header-menu button.mega-toggle-standard {transition: none;box-shadow: none;background: none;border: 0;bottom: auto;box-sizing: border-box;clip: auto;color: #2c2d33;display: block;float: none;font-family: inherit;font-size: 14px;height: auto;left: auto;line-height: 1.7;list-style-type: none;margin: 0;min-height: auto;max-height: none;min-width: auto;max-width: none;opacity: 1;outline: none;overflow: visible;padding: 0;position: relative;pointer-events: auto;right: auto;text-align: left;text-decoration: none;text-indent: 0;text-transform: none;transform: none;top: auto;vertical-align: baseline;visibility: inherit;width: auto;word-wrap: break-word;white-space: normal;-webkit-tap-highlight-color: transparent;}#mega-menu-wrap-header-menu:before, #mega-menu-wrap-header-menu:after, #mega-menu-wrap-header-menu #mega-menu-header-menu:before, #mega-menu-wrap-header-menu #mega-menu-header-menu:after, #mega-menu-wrap-header-menu #mega-menu-header-menu ul.mega-sub-menu:before, #mega-menu-wrap-header-menu #mega-menu-header-menu ul.mega-sub-menu:after, #mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-item:before, #mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-item:after, #mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-row:before, #mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-row:after, #mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-column:before, #mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-column:after, #mega-menu-wrap-header-menu #mega-menu-header-menu a.mega-menu-link:before, #mega-menu-wrap-header-menu #mega-menu-header-menu a.mega-menu-link:after, #mega-menu-wrap-header-menu #mega-menu-header-menu span.mega-indicator:before, #mega-menu-wrap-header-menu #mega-menu-header-menu span.mega-indicator:after, #mega-menu-wrap-header-menu #mega-menu-header-menu span.mega-menu-badge:before, #mega-menu-wrap-header-menu #mega-menu-header-menu span.mega-menu-badge:after, #mega-menu-wrap-header-menu button.mega-close:before, #mega-menu-wrap-header-menu button.mega-close:after, #mega-menu-wrap-header-menu button.mega-toggle-standard:before, #mega-menu-wrap-header-menu button.mega-toggle-standard:after {display: none;}#mega-menu-wrap-header-menu {border-radius: 0px;}@media only screen and (min-width: 769px) {#mega-menu-wrap-header-menu {background: linear-gradient(to bottom, rgba(255, 255, 255, 0), rgba(0, 0, 0, 0));}}#mega-menu-wrap-header-menu.mega-keyboard-navigation .mega-menu-toggle:focus, #mega-menu-wrap-header-menu.mega-keyboard-navigation .mega-toggle-block:focus, #mega-menu-wrap-header-menu.mega-keyboard-navigation .mega-toggle-block a:focus, #mega-menu-wrap-header-menu.mega-keyboard-navigation .mega-toggle-block button:focus, #mega-menu-wrap-header-menu.mega-keyboard-navigation .mega-toggle-block .mega-search input[type=text]:focus, #mega-menu-wrap-header-menu.mega-keyboard-navigation .mega-toggle-block button.mega-toggle-animated:focus, #mega-menu-wrap-header-menu.mega-keyboard-navigation #mega-menu-header-menu a:focus, #mega-menu-wrap-header-menu.mega-keyboard-navigation #mega-menu-header-menu span:focus, #mega-menu-wrap-header-menu.mega-keyboard-navigation #mega-menu-header-menu input:focus, #mega-menu-wrap-header-menu.mega-keyboard-navigation #mega-menu-header-menu li.mega-menu-item .mega-menu-link:focus, #mega-menu-wrap-header-menu.mega-keyboard-navigation #mega-menu-header-menu form.mega-search-open:has(input[type=text]:focus), #mega-menu-wrap-header-menu.mega-keyboard-navigation #mega-menu-header-menu + button.mega-close:focus, #mega-menu-wrap-header-menu.mega-keyboard-navigation #mega-menu-header-menu .mega-mobile-back > button:focus {outline-style: solid;outline-width: 3px;outline-color: #109cde;outline-offset: -3px;}#mega-menu-wrap-header-menu.mega-keyboard-navigation .mega-toggle-block button.mega-toggle-animated:focus {outline-offset: 2px;}#mega-menu-wrap-header-menu.mega-keyboard-navigation > li.mega-menu-item > a.mega-menu-link:focus {background-color: rgba(255, 255, 255, 0);color: #0ea5df;font-weight: normal;text-decoration: none;border-color: #fff;}@media only screen and (max-width: 768px) {#mega-menu-wrap-header-menu.mega-keyboard-navigation > li.mega-menu-item > a.mega-menu-link:focus {color: #ffffff;background-color: #2c2d33;}}#mega-menu-wrap-header-menu #mega-menu-header-menu {text-align: left;padding: 0px;}#mega-menu-wrap-header-menu #mega-menu-header-menu .mega-description-group {vertical-align: middle;display: inline-block;transition: none;}#mega-menu-wrap-header-menu #mega-menu-header-menu .mega-description-group .mega-menu-title, #mega-menu-wrap-header-menu #mega-menu-header-menu .mega-description-group .mega-menu-description {transition: none;line-height: 1.5;display: block;}#mega-menu-wrap-header-menu #mega-menu-header-menu .mega-description-group .mega-menu-description {font-style: italic;font-size: 0.8em;text-transform: none;font-weight: normal;}#mega-menu-wrap-header-menu #mega-menu-header-menu a.mega-menu-link {cursor: pointer;display: inline;transition: background 200ms linear, color 200ms linear, border 200ms linear;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-megamenu li.mega-menu-item.mega-icon-left.mega-has-description.mega-has-icon > a.mega-menu-link {display: flex;align-items: center;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-megamenu li.mega-menu-item.mega-icon-left.mega-has-description.mega-has-icon > a.mega-menu-link:before {flex: 0 0 auto;align-self: flex-start;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-tabbed.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-item.mega-icon-left.mega-has-description.mega-has-icon > a.mega-menu-link {display: block;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-item.mega-icon-top > a.mega-menu-link {display: table-cell;vertical-align: middle;line-height: initial;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-item.mega-icon-top > a.mega-menu-link:before {display: block;margin: 0 0 6px 0;text-align: center;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-item.mega-icon-top > a.mega-menu-link > span.mega-title-below {display: inline-block;transition: none;}@media only screen and (max-width: 768px) {#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item.mega-icon-top > a.mega-menu-link {display: block;line-height: 40px;}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item.mega-icon-top > a.mega-menu-link:before {display: inline-block;margin: 0 6px 0 0;text-align: left;}}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-item.mega-icon-right > a.mega-menu-link:before {float: right;margin: 0 0 0 6px;}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-animating > ul.mega-sub-menu {pointer-events: none;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-disable-link > a.mega-menu-link, #mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-megamenu li.mega-disable-link > a.mega-menu-link {cursor: inherit;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-item-has-children.mega-disable-link > a.mega-menu-link, #mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-megamenu > li.mega-menu-item-has-children.mega-disable-link > a.mega-menu-link {cursor: pointer;}#mega-menu-wrap-header-menu #mega-menu-header-menu p {margin-bottom: 10px;}#mega-menu-wrap-header-menu #mega-menu-header-menu input, #mega-menu-wrap-header-menu #mega-menu-header-menu img {max-width: 100%;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-item > ul.mega-sub-menu {display: block;visibility: hidden;opacity: 1;pointer-events: auto;}@media only screen and (max-width: 768px) {#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-item > ul.mega-sub-menu {display: none;visibility: visible;opacity: 1;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-item.mega-toggle-on > ul.mega-sub-menu, #mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-megamenu.mega-menu-item.mega-toggle-on ul.mega-sub-menu {display: block;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-megamenu.mega-menu-item.mega-toggle-on li.mega-hide-sub-menu-on-mobile > ul.mega-sub-menu, #mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-hide-sub-menu-on-mobile > ul.mega-sub-menu {display: none;}}@media only screen and (min-width: 769px) {#mega-menu-wrap-header-menu #mega-menu-header-menu[data-effect="fade"] li.mega-menu-item > ul.mega-sub-menu {opacity: 0;transition: opacity 200ms ease-in, visibility 200ms ease-in;}#mega-menu-wrap-header-menu #mega-menu-header-menu[data-effect="fade"].mega-no-js li.mega-menu-item:hover > ul.mega-sub-menu, #mega-menu-wrap-header-menu #mega-menu-header-menu[data-effect="fade"].mega-no-js li.mega-menu-item:focus > ul.mega-sub-menu, #mega-menu-wrap-header-menu #mega-menu-header-menu[data-effect="fade"] li.mega-menu-item.mega-toggle-on > ul.mega-sub-menu, #mega-menu-wrap-header-menu #mega-menu-header-menu[data-effect="fade"] li.mega-menu-item.mega-menu-megamenu.mega-toggle-on ul.mega-sub-menu {opacity: 1;}#mega-menu-wrap-header-menu #mega-menu-header-menu[data-effect="fade_up"] li.mega-menu-item.mega-menu-megamenu > ul.mega-sub-menu, #mega-menu-wrap-header-menu #mega-menu-header-menu[data-effect="fade_up"] li.mega-menu-item.mega-menu-flyout ul.mega-sub-menu {opacity: 0;transform: translate(0, 10px);transition: opacity 200ms ease-in, transform 200ms ease-in, visibility 200ms ease-in;}#mega-menu-wrap-header-menu #mega-menu-header-menu[data-effect="fade_up"].mega-no-js li.mega-menu-item:hover > ul.mega-sub-menu, #mega-menu-wrap-header-menu #mega-menu-header-menu[data-effect="fade_up"].mega-no-js li.mega-menu-item:focus > ul.mega-sub-menu, #mega-menu-wrap-header-menu #mega-menu-header-menu[data-effect="fade_up"] li.mega-menu-item.mega-toggle-on > ul.mega-sub-menu, #mega-menu-wrap-header-menu #mega-menu-header-menu[data-effect="fade_up"] li.mega-menu-item.mega-menu-megamenu.mega-toggle-on ul.mega-sub-menu {opacity: 1;transform: translate(0, 0);}#mega-menu-wrap-header-menu #mega-menu-header-menu[data-effect="slide_up"] li.mega-menu-item.mega-menu-megamenu > ul.mega-sub-menu, #mega-menu-wrap-header-menu #mega-menu-header-menu[data-effect="slide_up"] li.mega-menu-item.mega-menu-flyout ul.mega-sub-menu {transform: translate(0, 10px);transition: transform 200ms ease-in, visibility 200ms ease-in;}#mega-menu-wrap-header-menu #mega-menu-header-menu[data-effect="slide_up"].mega-no-js li.mega-menu-item:hover > ul.mega-sub-menu, #mega-menu-wrap-header-menu #mega-menu-header-menu[data-effect="slide_up"].mega-no-js li.mega-menu-item:focus > ul.mega-sub-menu, #mega-menu-wrap-header-menu #mega-menu-header-menu[data-effect="slide_up"] li.mega-menu-item.mega-toggle-on > ul.mega-sub-menu, #mega-menu-wrap-header-menu
444 #mega-menu-header-menu[data-effect="slide_up"] li.mega-menu-item.mega-menu-megamenu.mega-toggle-on ul.mega-sub-menu {transform: translate(0, 0);}}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-item.mega-menu-megamenu ul.mega-sub-menu li.mega-collapse-children > ul.mega-sub-menu {display: none;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-item.mega-menu-megamenu ul.mega-sub-menu li.mega-collapse-children.mega-toggle-on > ul.mega-sub-menu {display: block;}#mega-menu-wrap-header-menu #mega-menu-header-menu.mega-no-js li.mega-menu-item:hover > ul.mega-sub-menu, #mega-menu-wrap-header-menu #mega-menu-header-menu.mega-no-js li.mega-menu-item:focus > ul.mega-sub-menu, #mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-item.mega-toggle-on > ul.mega-sub-menu {visibility: visible;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-item.mega-menu-megamenu ul.mega-sub-menu ul.mega-sub-menu {visibility: inherit;opacity: 1;display: block;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-item.mega-menu-megamenu ul.mega-sub-menu li.mega-1-columns > ul.mega-sub-menu > li.mega-menu-item {float: left;width: 100%;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-item.mega-menu-megamenu ul.mega-sub-menu li.mega-2-columns > ul.mega-sub-menu > li.mega-menu-item {float: left;width: 50%;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-item.mega-menu-megamenu ul.mega-sub-menu li.mega-3-columns > ul.mega-sub-menu > li.mega-menu-item {float: left;width: 33.3333333333%;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-item.mega-menu-megamenu ul.mega-sub-menu li.mega-4-columns > ul.mega-sub-menu > li.mega-menu-item {float: left;width: 25%;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-item.mega-menu-megamenu ul.mega-sub-menu li.mega-5-columns > ul.mega-sub-menu > li.mega-menu-item {float: left;width: 20%;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-item.mega-menu-megamenu ul.mega-sub-menu li.mega-6-columns > ul.mega-sub-menu > li.mega-menu-item {float: left;width: 16.6666666667%;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-item a[class^="dashicons"]:before {font-family: dashicons;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-item a.mega-menu-link:before {display: inline-block;font: inherit;font-family: dashicons;position: static;margin: 0 6px 0 0px;vertical-align: top;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;color: inherit;background: transparent;height: auto;width: auto;top: auto;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-item a.mega-material-symbol:before {content: attr(data-ms-icon);font-family: var(--wp--preset--font-family--material-symbols);}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-item.mega-hide-text a.mega-menu-link:before {margin: 0;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-item.mega-hide-text li.mega-menu-item a.mega-menu-link:before {margin: 0 6px 0 0;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-align-bottom-left.mega-toggle-on > a.mega-menu-link {border-radius: 0px;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-align-bottom-right > ul.mega-sub-menu {right: 0;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-align-bottom-right.mega-toggle-on > a.mega-menu-link {border-radius: 0px;}@media only screen and (min-width: 769px) {#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu.mega-menu-item {position: static;}}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item {margin: 0 0px 0 0;display: inline-block;height: auto;vertical-align: middle;}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item.mega-item-align-right {float: right;}@media only screen and (min-width: 769px) {#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item.mega-item-align-right {margin: 0 0 0 0px;}}@media only screen and (min-width: 769px) {#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item.mega-item-align-float-left {float: left;}}@media only screen and (min-width: 769px) {#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item > a.mega-menu-link:hover, #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item > a.mega-menu-link:focus {background-color: rgba(255, 255, 255, 0);color: #0ea5df;font-weight: normal;text-decoration: none;border-color: #fff;}}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item.mega-toggle-on > a.mega-menu-link {background-color: rgba(255, 255, 255, 0);color: #0ea5df;font-weight: normal;text-decoration: none;border-color: #fff;}@media only screen and (max-width: 768px) {#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item.mega-toggle-on > a.mega-menu-link {color: #ffffff;background-color: #2c2d33;}}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item.mega-current-menu-item > a.mega-menu-link, #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item.mega-current-menu-ancestor > a.mega-menu-link, #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item.mega-current-page-ancestor > a.mega-menu-link {background-color: rgba(255, 255, 255, 0);color: #0ea5df;font-weight: normal;text-decoration: none;border-color: #fff;}@media only screen and (max-width: 768px) {#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item.mega-current-menu-item > a.mega-menu-link, #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item.mega-current-menu-ancestor > a.mega-menu-link, #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item.mega-current-page-ancestor > a.mega-menu-link {color: #ffffff;background-color: #2c2d33;}}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item > a.mega-menu-link {line-height: 50px;height: 50px;padding: 0px 40px;vertical-align: baseline;width: auto;display: block;color: #ffffff;text-transform: uppercase;text-decoration: none;text-align: left;background-color: rgba(0, 0, 0, 0);border: 0;border-radius: 0px;font-family: inherit;font-size: 16px;font-weight: normal;outline: none;}@media only screen and (min-width: 769px) {#mega-menu-wrap-header-menu #mega-menu-header-menu >
444 li.mega-menu-item.mega-multi-line > a.mega-menu-link {line-height: inherit;display: table-cell;vertical-align: middle;}}@media only screen and (max-width: 768px) {#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item.mega-multi-line > a.mega-menu-link br {display: none;}}@media only screen and (max-width: 768px) {#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item {display: list-item;margin: 0;clear: both;border: 0;}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item.mega-item-align-right {float: none;}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item > a.mega-menu-link {border: 0;margin: 0;line-height: 40px;height: 40px;padding: 0 10px;background: transparent;text-align: left;color: #ffffff;font-size: 14px;}}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row {width: 100%;float: left;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row .mega-menu-column {float: left;min-height: 1px;}@media only screen and (min-width: 769px) {#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-column {width: calc(var(--span) / var(--columns) * 100%);}}@media only screen and (max-width: 768px) {#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-column {width: 100%;clear: both;}}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row .mega-menu-column > ul.mega-sub-menu > li.mega-menu-item {padding: 0px;width: 100%;}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu {z-index: 999;border-radius: 0px;background-color: white;border: 0;padding: 20px;position: absolute;width: 150%;max-width: none;left: 0;}@media only screen and (max-width: 768px) {#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu {float: left;position: static;width: 100%;}}@media only screen and (min-width: 769px) {#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column-standard {width: calc(var(--span) / var(--columns) * 100%);}}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu .mega-description-group .mega-menu-description {margin: 5px 0;}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-item ul.mega-sub-menu {clear: both;}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-item ul.mega-sub-menu li.mega-menu-item ul.mega-sub-menu {margin-left: 10px;}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu ul.mega-sub-menu ul.mega-sub-menu {margin-left: 10px;}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column-standard, #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item {color: #2c2d33;font-family: inherit;font-size: 14px;display: block;float: left;clear: none;padding: 0px;vertical-align: top;}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column-standard.mega-menu-clear, #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item.mega-menu-clear {clear: left;}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column-standard h4.mega-block-title, #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item h4.mega-block-title {color: #222;font-family: inherit;font-size: 14px;text-transform: uppercase;text-decoration: none;font-weight: bold;text-align: left;margin: 0px 40px 10px 0px;padding: 0px 0px 5px 0px;vertical-align: top;display: block;visibility: inherit;border: 0;}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column-standard h4.mega-block-title:hover, #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item h4.mega-block-title:hover {border-color: rgba(0, 0, 0, 0);}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column-standard > a.mega-menu-link, #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link {color: #2c2d33;/* Mega Menu > Menu Themes > Mega Menus > Second Level Menu Items */font-family: inherit;font-size: 14px;text-transform: capitalize;text-decoration: none;font-weight: normal;text-align: left;margin: 0px 0px 0px 0px;padding: 5px 10px;vertical-align: top;display: block;border: 0;}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column-standard > a.mega-menu-link:hover, #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link:hover {border-color: rgba(0, 0, 0, 0);}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column-standard > a.mega-menu-link:hover, #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column-standard > a.mega-menu-link:focus, #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link:hover, #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link:focus {color: #0ea5df;/* Mega Menu > Menu Themes > Mega Menus >
444 Second Level Menu Items (Hover) */font-weight: bold;text-decoration: none;background-color: rgba(0, 0, 0, 0);}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column-standard > a.mega-menu-link:hover > span.mega-title-below, #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column-standard > a.mega-menu-link:focus > span.mega-title-below, #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link:hover > span.mega-title-below, #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link:focus > span.mega-title-below {text-decoration: none;}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column-standard li.mega-menu-item > a.mega-menu-link, #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item li.mega-menu-item > a.mega-menu-link {color: #2c2d33;/* Mega Menu > Menu Themes > Mega Menus > Third Level Menu Items */font-family: inherit;font-size: 14px;text-transform: none;text-decoration: none;font-weight: normal;text-align: left;margin: 0px 0px 0px 0px;padding: 0px 0px 10px 10px;vertical-align: top;display: block;border: 0;}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column-standard li.mega-menu-item > a.mega-menu-link:hover, #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item li.mega-menu-item > a.mega-menu-link:hover {border-color: rgba(0, 0, 0, 0);}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column-standard li.mega-menu-item.mega-icon-left.mega-has-description.mega-has-icon > a.mega-menu-link, #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item li.mega-menu-item.mega-icon-left.mega-has-description.mega-has-icon > a.mega-menu-link {display: flex;}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column-standard li.mega-menu-item > a.mega-menu-link:hover, #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column-standard li.mega-menu-item > a.mega-menu-link:focus, #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item li.mega-menu-item > a.mega-menu-link:hover, #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item li.mega-menu-item > a.mega-menu-link:focus {color: #0ea5df;/* Mega Menu > Menu Themes > Mega Menus > Third Level Menu Items (Hover) */font-weight: bold;text-decoration: none;background-color: white;}@media only screen and (max-width: 768px) {#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu {border: 0;padding: 10px;}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-item {width: 100%;clear: both;}}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu.mega-no-headers > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link, #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu.mega-no-headers > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link {color: #2c2d33;font-family: inherit;font-size: 14px;text-transform: none;text-decoration: none;font-weight: normal;margin: 0;border: 0;padding: 0px 0px 10px 10px;vertical-align: top;display: block;}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu.mega-no-headers > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link:hover, #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu.mega-no-headers > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link:focus, #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu.mega-no-headers > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link:hover, #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu.mega-no-headers > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link:focus {color: #0ea5df;font-weight: bold;text-decoration: none;background-color: white;}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-flyout ul.mega-sub-menu {z-index: 999;position: absolute;width: auto;max-width: none;padding: 24px 24px 6px 24px;border: 0;background-color: white;border-radius: 0px;}@media only screen and (max-width: 768px) {#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-flyout ul.mega-sub-menu {float: left;position: static;width: 100%;padding: 0;border: 0;border-radius: 0;}}@media only screen and (min-width: 769px) {#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-flyout ul.mega-sub-menu li.mega-menu-item > a.mega-menu-link {white-space: nowrap;min-width: 150px;}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-flyout ul.mega-sub-menu li.mega-menu-item.mega-has-description > a.mega-menu-link {white-space: normal;}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-flyout ul.mega-sub-menu li.mega-menu-item.mega-has-description > a.mega-menu-link > .mega-description-group > .mega-menu-title {white-space: nowrap;}}@media only screen and (max-width: 768px) {#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-flyout ul.mega-sub-menu li.mega-menu-item {clear: both;}}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-flyout ul.mega-sub-menu li.mega-menu-item a.mega-menu-link {display: block;background-color: rgba(44, 45, 51, 0);color: #2c2d33;font-family: inherit;font-size: 14px;font-weight: normal;padding: 0px;line-height: 34px;text-decoration: none;text-transform: none;vertical-align: baseline;}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-flyout ul.mega-sub-menu li.mega-menu-item:first-child > a.mega-menu-link {border-top-left-radius: 0px;border-top-right-radius: 0px;}@media only screen and (max-width: 768px) {#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-flyout ul.mega-sub-menu li.mega-menu-item:first-child > a.mega-menu-link {border-top-left-radius: 0;border-top-right-radius: 0;}}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-flyout ul.mega-sub-menu li.mega-menu-item:last-child > a.mega-menu-link {border-bottom-right-radius: 0px;border-bottom-left-radius: 0px;}@media only screen and (max-width: 768px) {#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-flyout ul.mega-sub-menu li.mega-menu-item:last-child > a.mega-menu-link {border-bottom-right-radius: 0;border-bottom-left-radius: 0;}}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-flyout ul.mega-sub-menu li.mega-menu-item a.mega-menu-link:hover, #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-flyout ul.mega-sub-menu li.mega-menu-item a.mega-menu-link:focus {background-color: rgba(44, 45, 51, 0);font-weight: bold;text-decoration: none;color: #0ea5df;}@media only screen and (min-width: 769px) {#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-flyout ul.mega-sub-menu li.mega-menu-item ul.mega-sub-menu {position: absolute;
444left: 100%;top: 0;}}@media only screen and (max-width: 768px) {#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-flyout ul.mega-sub-menu li.mega-menu-item ul.mega-sub-menu a.mega-menu-link {padding-left: 20px;}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-flyout ul.mega-sub-menu li.mega-menu-item ul.mega-sub-menu ul.mega-sub-menu a.mega-menu-link {padding-left: 30px;}}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-item-has-children > a.mega-menu-link > span.mega-indicator {display: inline-block;height: 100%;font-size: inherit;line-height: inherit;margin: 0 0 0 6px;color: inherit;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-item-has-children > a.mega-menu-link > span.mega-indicator:after {display: inline-block;vertical-align: top;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;content: "";font-family: dashicons;font-weight: normal;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-item-has-children li.mega-menu-item-has-children > a.mega-menu-link > span.mega-indicator {float: right;margin-left: auto;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-item-has-children.mega-collapse-children.mega-toggle-on > a.mega-menu-link > span.mega-indicator:after {content: "";}@media only screen and (max-width: 768px) {#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-item-has-children > a.mega-menu-link > span.mega-indicator {float: right;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-item-has-children.mega-toggle-on > a.mega-menu-link > span.mega-indicator:after {content: "";}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-item-has-children.mega-hide-sub-menu-on-mobile > a.mega-menu-link > span.mega-indicator {display: none;}}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-megamenu:not(.mega-menu-tabbed) li.mega-menu-item-has-children:not(.mega-collapse-children) > a.mega-menu-link > span.mega-indicator, #mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-item-has-children.mega-hide-arrow > a.mega-menu-link > span.mega-indicator {display: none;}@media only screen and (min-width: 769px) {#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-flyout li.mega-menu-item a.mega-menu-link > span.mega-indicator:after {content: "";}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-flyout.mega-align-bottom-right li.mega-menu-item a.mega-menu-link {text-align: right;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-flyout.mega-align-bottom-right li.mega-menu-item a.mega-menu-link > span.mega-indicator {float: left;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-flyout.mega-align-bottom-right li.mega-menu-item a.mega-menu-link > span.mega-indicator:after {content: "";margin: 0 6px 0 0;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-flyout.mega-align-bottom-right li.mega-menu-item a.mega-menu-link:before {float: right;margin: 0 0 0 6px;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-flyout.mega-align-bottom-right ul.mega-sub-menu li.mega-menu-item ul.mega-sub-menu {left: -100%;top: 0;}}@media only screen and (max-width: 768px) {#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-hide-on-mobile, #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-hide-on-mobile, #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item.mega-hide-on-mobile {display: none;}}@media only screen and (min-width: 769px) {#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-hide-on-desktop, #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-hide-on-desktop, #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item.mega-hide-on-desktop {display: none;}}#mega-menu-wrap-header-menu .mega-menu-toggle {display: none;}#mega-menu-wrap-header-menu .mega-menu-toggle ~ button.mega-close {display: none;}@media only screen and (max-width: 768px) {#mega-menu-wrap-header-menu .mega-menu-toggle {z-index: 1;background-color: #2c2d33;border-radius: 2px;line-height: 40px;height: 40px;text-align: left;user-select: none;outline: none;white-space: nowrap;display: flex;}#mega-menu-wrap-header-menu .mega-menu-toggle img {max-width: 100%;padding: 0;}#mega-menu-wrap-header-menu .mega-menu-toggle .mega-toggle-blocks-left, #mega-menu-wrap-header-menu .mega-menu-toggle .mega-toggle-blocks-center, #mega-menu-wrap-header-menu .mega-menu-toggle .mega-toggle-blocks-right {display: flex;flex: 1;gap: 6px;}#mega-menu-wrap-header-menu .mega-menu-toggle .mega-toggle-block {display: flex;height: 100%;outline: 0;align-self: center;flex-shrink: 0;}#mega-menu-wrap-header-menu .mega-menu-toggle .mega-toggle-blocks-left {justify-content: flex-start;padding-left: 6px;}#mega-menu-wrap-header-menu .mega-menu-toggle .mega-toggle-blocks-center {justify-content: center;}#mega-menu-wrap-header-menu .mega-menu-toggle .mega-toggle-blocks-right {justify-content: flex-end;padding-right: 6px;}#mega-menu-wrap-header-menu .mega-menu-toggle + #mega-menu-header-menu {flex-direction: column;flex-wrap: nowrap;background-color: #2c2d33;padding: 0px;display: none;}#mega-menu-wrap-header-menu .mega-menu-toggle.mega-menu-open + #mega-menu-header-menu {display: flex;visibility: visible;}}#mega-menu-wrap-header-menu .mega-menu-toggle .mega-toggle-block-1 {/*! * Hamburgers * @description Tasty CSS-animated hamburgers * @author Jonathan Suh @jonsuh * @site https://jonsuh.com/hamburgers * @link https://github.com/jonsuh/hamburgers */}#mega-menu-wrap-header-menu .mega-menu-toggle .mega-toggle-block-1 .mega-toggle-animated {padding: 0;display: flex;align-items: center;justify-content: center;width: 100%;height: 100%;cursor: pointer;transition-property: opacity, filter;transition-duration: 0.15s;transition-timing-function: linear;font: inherit;color: inherit;text-transform: none;background-color: transparent;border: 0;margin: 0;overflow: visible;transform: scale(0.8);align-self: center;outline: 0;background: none;}#mega-menu-wrap-header-menu .mega-menu-toggle .mega-toggle-block-1 .mega-toggle-animated-box {width: 40px;height: 24px;display: inline-block;position: relative;outline: 0;}#mega-menu-wrap-header-menu .mega-menu-toggle .mega-toggle-block-1 .mega-toggle-animated-inner {display: block;top: 50%;margin-top: -2px;}#mega-menu-wrap-header-menu .mega-menu-toggle .mega-toggle-block-1 .mega-toggle-animated-inner, #mega-menu-wrap-header-menu .mega-menu-toggle .mega-toggle-block-1 .mega-toggle-animated-inner::before, #mega-menu-wrap-header-menu .mega-menu-toggle .mega-toggle-block-1 .mega-toggle-animated-inner::after {width: 40px;height: 4px;background-color: #ddd;border-radius: 4px;position: absolute;transition-property: transform;transition-duration: 0.15s;transition-timing-function: ease;}#mega-menu-wrap-header-menu .mega-menu-toggle .mega-toggle-block-1 .mega-toggle-animated-inner::before, #mega-menu-wrap-header-menu .mega-menu-toggle .mega-toggle-block-1 .mega-toggle-animated-inner::after {content: "";display: block;}#mega-menu-wrap-header-menu .mega-menu-toggle .mega-toggle-block-1 .mega-toggle-animated-inner::before {top: -10px;}#mega-menu-wrap-header-menu .mega-menu-toggle .mega-toggle-block-1 .mega-toggle-animated-inner::after {bottom: -10px;}#mega-menu-wrap-header-menu .mega-menu-toggle .mega-toggle-block-1 .mega-toggle-animated-slider .mega-toggle-animated-inner {top: 2px;}#mega-menu-wrap-header-menu .mega-menu-toggle .mega-toggle-block-1 .mega-toggle-animated-slider .mega-toggle-animated-inner::before {top: 10px;transition-property: transform, opacity;transition-timing-function: ease;transition-duration: 0.15s;}#mega-menu-wrap-header-menu .mega-menu-toggle .mega-toggle-block-1 .mega-toggle-animated-slider .mega-toggle-animated-inner::after {top: 20px;}#mega-menu-wrap-header-menu .mega-menu-toggle.mega-menu-open .mega-toggle-block-1 .mega-toggle-animated-slider .mega-toggle-animated-inner {transform: translate3d(0, 10px, 0) rotate(45deg);}#mega-menu-wrap-header-menu .mega-menu-toggle.mega-menu-open .mega-toggle-block-1 .mega-toggle-animated-slider .mega-toggle-animated-inner::before {transform: rotate(-45deg) translate3d(-5.71429px, -6px, 0);opacity: 0;}#mega-menu-wrap-header-menu .mega-menu-toggle.mega-menu-open .mega-toggle-block-1 .mega-toggle-animated-slider .mega-toggle-animated-inner::after {transform: translate3d(0, -20px, 0
444) rotate(-90deg);}/** Push menu onto new line **/#mega-menu-wrap-header-menu {clear: both;}.wc_payment_method.payment_method_eway {display: none !important;}body.light-and-built-2024 header, body.light-and-built-2024 footer, body.light-and-built-2024 #navbar {display: none !important;}@media only screen and (min-width: 769px) {#mega-menu-wrap-header-menu {margin-right: auto;margin-left: auto;display: flex;}#mega-menu-wrap-main_menu {width: 100%;left: 170px;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-item-has-children > a.mega-menu-link > span.mega-indicator {display: none;}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item a.mega-menu-link {letter-spacing: 0.15rem;}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item ul.mega-sub-menu li.mega-menu-item a.mega-menu-link {-webkit-transition: all 0.3s ease-in-out;transition: all 0.3s ease-in-out;letter-spacing: 0;}body[data-lang="ar"] #mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row .mega-menu-column {float: right;}body[data-lang="ar"] #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-item h4.mega-block-title, body[data-lang="ar"] #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item h4.mega-block-title {margin: 0px 0px 10px 40px;}body[data-lang="ar"] #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-item h4.mega-block-title, body[data-lang="ar"] #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item h4.mega-block-title, body[data-lang="ar"] #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-item li.mega-menu-item > a.mega-menu-link, body[data-lang="ar"] #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item li.mega-menu-item > a.mega-menu-link {text-align: right;}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item ul.mega-sub-menu li.mega-menu-item a.menu-image-link img.menu-image {display: none;position: fixed;left: 56%;bottom: 20px;transform: translateX(-50%);width: 240px;height: 157px;}body[data-lang="ar"] #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item ul.mega-sub-menu li.mega-menu-item a.menu-image-link img.menu-image {left: 45%;}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item ul.mega-sub-menu li.mega-menu-item a.menu-image-link:hover img.menu-image {display: block;}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item ul.mega-sub-menu li.mega-menu-item:not(.widget_media_image) a.mega-menu-link:before {content: "";position: absolute;display: block;width: 12px;height: 6px;background-position: center;background-repeat: no-repeat;background-size: cover;top: 12px;left: -15px;opacity: 0;-webkit-transition: all 0.3s ease-in-out;transition: all 0.3s ease-in-out;}body[data-lang="ar"] #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item ul.mega-sub-menu li.mega-menu-item:not(.widget_media_image) a.mega-menu-link:before {left: inherit;right: -15px;transform: rotate(-180deg);}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item ul.mega-sub-menu li.mega-menu-item.menuActive:not(.widget_media_image) > a.mega-menu-link, #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item ul.mega-sub-menu li.mega-menu-item:not(.widget_media_image):hover > a.mega-menu-link {padding-left: 20px !important;font-weight: bold !important;}body[data-lang="ar"] #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item ul.mega-sub-menu li.mega-menu-item.menuActive:not(.widget_media_image) > a.mega-menu-link, body[data-lang="ar"] #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item ul.mega-sub-menu li.mega-menu-item:not(.widget_media_image):hover > a.mega-menu-link {padding-left: inherit !important;padding-right: 20px !important;}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item ul.mega-sub-menu li.mega-menu-item.menuActive:not(.widget_media_image) > a.mega-menu-link:before, #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item ul.mega-sub-menu li.mega-menu-item:not(.widget_media_image):hover > a.mega-menu-link:before {opacity: 1;left: 0;}body[data-lang="ar"] #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item ul.mega-sub-menu li.mega-menu-item.menuActive:not(.widget_media_image) > a.mega-menu-link:before, body[data-lang="ar"] #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item ul.mega-sub-menu li.mega-menu-item:not(.widget_media_image):hover > a.mega-menu-link:before {left: inherit;right: 0;}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item ul.mega-sub-menu ul.mega-sub-menu ul.mega-sub-menu ul.mega-sub-menu li.mega-menu-item:not(.widget_media_image) {padding-left: 20px !important;}body[data-lang="ar"] #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item ul.mega-sub-menu ul.mega-sub-menu ul.mega-sub-menu ul.mega-sub-menu li.mega-menu-item:not(.widget_media_image) {padding-left: inherit !important;padding-right: 20px !important;}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item ul.mega-sub-menu ul.mega-sub-menu ul.mega-sub-menu ul.mega-sub-menu li.mega-menu-item:not(.widget_media_image) a.mega-menu-link {padding-left: 0px !important;}body[data-lang="ar"] #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item ul.mega-sub-menu ul.mega-sub-menu ul.mega-sub-menu ul.mega-sub-menu li.mega-menu-item:not(.widget_media_image) a.mega-menu-link {padding-right: 0px !important;}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item ul.mega-sub-menu ul.mega-sub-menu ul.mega-sub-menu ul.mega-sub-menu li.mega-menu-item:not(.widget_media_image) a.mega-menu-link:before {opacity: 0;left: -15px;}body[data-lang="ar"] #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item ul.mega-sub-menu ul.mega-sub-menu ul.mega-sub-menu ul.mega-sub-menu li.mega-menu-item:not(.widget_media_image) a.mega-menu-link:before {left: inherit;right: -15px;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-item > ul.mega-sub-menu {display: none;box-shadow: 0 0 20px rgba(0, 0, 0, 0.3);}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-item.mega-toggle-on > ul.mega-sub-menu {display: block;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-column {position: initial !important;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-column .mega-sub-menu {position: initial !important;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-column .mega-sub-menu li {position: initial !important;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-column .mega-sub-menu li.mega-menu-item-has-children > ul.mega-sub-menu {position: absolute !important;top: 0px !important;width: 130% !important;transform: translateX(75%) !important;background: #fff !important;z-index: 222 !important;-webkit-transition: all 0.3s;transition: all 0.3s;opacity: 0 !important;visibility: hidden !important;display: inline-block !important;height: 100% !important;box-shadow: 0 0 20px rgba(0, 0, 0, 0);}body[data-lang="ar"] #mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-column .mega-sub-menu li.mega-menu-item-has-children > ul.mega-sub-menu {transform: translateX(0) !important;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-column .mega-sub-menu li.mega-menu-item-has-children > ul.mega-sub-menu li:first-child > a {font-weight: bold !important;text-decoration: underline !important;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-item.mega-menu-megamenu ul.mega-sub-menu ul.mega-sub-menu {display: inline-block;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-column .mega-sub-menu li.mega-menu-item-has-children > ul.mega-sub-menu:before {position: absolute;display: block;content: "";height: calc(100% - 0px);width: 1px;background-color: rgba(44, 45, 51, 0.1);left: 0;top: 0px;opacity: 0;visibility: hidden;}body[data-lang="ar"] #mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-column .mega-sub-menu li.mega-menu-item-has-children > ul.mega-sub-menu:before {left: inherit;right: 0;}body[data-lang="ar"] #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link, body[data-lang="ar"] #mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link {text-align: right !important;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-column .mega-sub-menu li.mega-menu-item-has-children > ul.mega-sub-menu:before, #mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-column .mega-sub-menu li.mega-menu-item-has-children.menuActive > ul.mega-sub-menu {opacity: 1 !important;visibility: visible !important;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-column.prod_hidden > .mega-sub-menu {opacity: 0 !important;visibility: hidden !important;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-column .widget_media_image a {width: 100%;height: 120px;outline: 1px solid rgba(44, 45, 51, 0.3);position: relative;display: block;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-column .widget_media_image a img {width: 213px;height: 120px !important;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-column ul.mega-sub-menu .widget_media_image:first-child a {background-color: rgba(0, 0, 0, 0.3);margin: 8px 0;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-column ul.mega-sub-menu .widget_media_image:last-child a {background-color: rgba(47, 110, 135, 0.21);margin: 8px 0;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-column ul.mega-sub-menu .widget_media_image:first-child a img {position: absolute;right: 0;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row > ul.mega-sub-menu > li.mega-menu-column ul.mega-sub-menu .widget_media_image:last-child a img {position: absolute;
444left: 0;}#primary_nav .menu_right_field .no-label {margin-top: 8px;-webkit-margin-before: -15px;}}@media only screen and (min-width: 769px) and (max-width: 1170px) {#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item a.mega-menu-link {padding: 0 15px;}}@media only screen and (max-width: 768px) {body.mega-menu-header-menu-mobile-open {overflow-y: hidden;}body.mega-menu-header-menu-mobile-open #navbar {background-color: #2c2d33;}#mega-menu-wrap-header-menu {position: fixed;width: 100%;top: 70px;overflow-y: auto;}body.mega-menu-header-menu-mobile-open #mega-menu-wrap-header-menu {height: 100vh;}#mega-menu-wrap-header-menu .mega-menu-toggle.mega-menu-open + #mega-menu-header-menu {height: 100vh;}#mega-menu-wrap-header-menu .mega-menu-toggle {position: fixed;left: 40px;top: 15px;}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu {padding: 0;}#mega-menu-wrap-header-menu #mega-menu-header-menu li.mega-menu-megamenu > ul.mega-sub-menu > li.mega-menu-row .mega-menu-column > ul.mega-sub-menu > li.mega-menu-item {border-top: 1px solid #4c4f55;}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-megamenu > ul.mega-sub-menu li.mega-menu-column > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link {height: 44px;padding: 5px 40px;line-height: 38px;}.primary-header #logo {position: absolute;left: 20px;top: 20px;}.primary-header > div.wrap {padding-top: 0px;}#primary_nav {padding-top: 5px;}#primary_nav #mega-menu-wrap-main_menu {display: none;}#primary_nav .menu_right_field {margin: auto;margin-right: 0;margin-top: 30px;}#menu_btn {margin-top: 5px;}#primary_nav .menu_right_field .no-label {margin-left: 0;margin-right: 0;}#primary_nav .menu_right_field .no-label:last-child {margin-left: 0;margin-right: 30px;}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item {border-top: 1px solid #4c4f55;}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item:hover {background-color: #151414;}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item:last-child {border-bottom: 1px solid #4c4f55;}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item > a.mega-menu-link {height: 44px;padding: 2px 20px;}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item > ul.mega-sub-menu > li.mega-menu-item > ul.mega-sub-menu {padding-left: 35px;}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item > ul.mega-sub-menu > li.mega-menu-item {border-top: 1px solid #4c4f55;}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item > ul.mega-sub-menu > li.mega-menu-item > a.mega-menu-link {height: 44px;padding: 5px 40px;}#mega-menu-wrap-header-menu #mega-menu-header-menu > li.mega-menu-item > ul.mega-sub-menu > li.mega-menu-item:hover {background: #151414;}}@media only screen and (max-width: 768px) and (max-width: 575px) {#mega-menu-wrap-header-menu .mega-menu-toggle {left: 20px;}}@media only screen and (max-width: 768px) and (max-width: 320px) {.primary-header > div.wrap {padding-top: 20px;}.primary-header #logo {position: relative;transform: none;top: 0;margin: 0 auto 10px;display: block;left: 0;}#primary_nav .menu_right_field {margin: auto !important;margin-top: 20px !important;}}@media only screen and (max-width: 768px) and (min-width: 600px) {.primary-header #logo {position: absolute;left: 20px;top: 50%;}}.wp-block {}</style>
445
446    
447<link rel='stylesheet' id='wpo_min-footer-0-css' href='https://www.enttec.com.au/wp-content/cache/wpo-minify/1791192652/assets/wpo-minify-footer-b8c31ee1.min.css' media='all' />
448
449</head>
450
451
452<body data-lang='en'class="wp-singular page-template-default page page-id-2946 wp-embed-responsive wp-theme-eshop frontend newLookEnabled  theme-eshop woocommerce-no-js mega-menu-header-menu store-policy">
453
454        <div id="navbar">
455        <div class="nav_container">
456            <div class='resposnive-icon'>
457                <i class="fas fa-bars"></i>
458                <i class="fas fa-times"></i>
459            </div>
460            <div class="logo" translate="no">
461                <a
462                    href="https://www.enttec.com.au/">
463<!--                    EN<span>TT</span>EC-->
464                    <img src="https://www.enttec.com.au/wp-content/themes/eshop/img/enttec-logo-white.svg" width="128" class="white-logo" height="21" />
465                                            <img src="https://www.enttec.com.au/wp-content/themes/eshop/img/enttec-logo-black.svg" width="128" class="black-logo" height="21" />
466                    
467                </a>
468            </div>
469            <div id="mega-menu-wrap-header-menu" class="mega-menu-wrap"><div class="mega-menu-toggle"><div class="mega-toggle-blocks-left"></div><div class="mega-toggle-blocks-center"></div><div class="mega-toggle-blocks-right"><div class='mega-toggle-block mega-menu-toggle-animated-block mega-toggle-block-1' id='mega-toggle-block-1'><button aria-controls="mega-menu-header-menu" aria-expanded="false" aria-haspopup="true" aria-label="Toggle Menu" class="mega-toggle-animated mega-toggle-animated-slider" type="button">
470                  <span class="mega-toggle-animated-box">
471                    <span class="mega-toggle-animated-inner"></span>
472                  </span>
473                </button></div></div></div><ul id="mega-menu-header-menu" class="mega-menu max-mega-menu mega-menu-horizontal mega-no-js" data-event="hover_intent" data-effect="fade_up" data-effect-speed="200" data-effect-mobile="disabled" data-effect-speed-mobile="0" data-mobile-force-width="false" data-second-click="go" data-document-click="collapse" data-vertical-behaviour="standard" data-breakpoint="768" data-unbind="true" data-mobile-state="collapse_all" data-mobile-direction="vertical"><li class="mega-enttec-nav-item mega-enttec-nav-about mega-enttec-nav-has-dropdown mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-990001 enttec-nav-item enttec-nav-about enttec-nav-has-dropdown" id="mega-menu-item-990001"><a class="mega-menu-link" href="https://www.enttec.com.au/about-enttec/">About</a></li><li class="mega-enttec-nav-item mega-enttec-nav-projects mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-990002 enttec-nav-item enttec-nav-projects" id="mega-menu-item-990002"><a class="mega-menu-link" href="https://www.enttec.com.au/projects">Projects</a></li><li class="mega-enttec-nav-item mega-enttec-nav-products mega-enttec-nav-has-dropdown mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-990003 enttec-nav-item enttec-nav-products enttec-nav-has-dropdown" id="mega-menu-item-990003"><a class="mega-menu-link" href="https://www.enttec.com.au/products/">Products</a></li><li class="mega-enttec-nav-item mega-enttec-nav-support mega-enttec-nav-has-dropdown mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-990004 enttec-nav-item enttec-nav-support enttec-nav-has-dropdown" id="mega-menu-item-990004"><a class="mega-menu-link" href="https://support.enttec.com/">Support</a></li><li class="mega-enttec-nav-item mega-enttec-nav-news mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-990005 enttec-nav-item enttec-nav-news" id="mega-menu-item-990005"><a class="mega-menu-link" href="https://www.enttec.com.au/blog/">News</a></li></ul></div>             <!-- search -->
474<div class="search_container">
475    <form class="search" id="search-form" method="get"
476          action="https://www.enttec.com.au" role="search">
477        <svg class="search_input" width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
478            <path d="M19 19L13 13M15 8C15 8.91925 14.8189 9.82951 14.4672 10.6788C14.1154 11.5281 13.5998 12.2997 12.9497 12.9497C12.2997 13.5998 11.5281 14.1154 10.6788 14.4672C9.82951 14.8189 8.91925 15 8 15C7.08075 15 6.1705 14.8189 5.32122 14.4672C4.47194 14.1154 3.70026 13.5998 3.05025 12.9497C2.40024 12.2997 1.88463 11.5281 1.53284 10.6788C1.18106 9.82951 1 8.91925 1 8C1 6.14348 1.7375 4.36301 3.05025 3.05025C4.36301 1.7375 6.14348 1 8 1C9.85652 1 11.637 1.7375 12.9497 3.05025C14.2625 4.36301 15 6.14348 15 8Z" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
479        </svg>
480        <input class="search-input" type="text" autocomplete="off" name="s"
481               placeholder="To search, type keyword or SKU then hit enter.">
482        <span class='close-search'
483              title='Close Search'>×</span>
484    </form>
485    <div class="results_wrapper">
486
487    </div>
488</div>
489<!-- /search -->            <div class="header-icons">
490                                <svg class="search_nav fa-search" width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
491                    <path d="M19 19L13 13M15 8C15 8.91925 14.8189 9.82951 14.4672 10.6788C14.1154 11.5281 13.5998 12.2997 12.9497 12.9497C12.2997 13.5998 11.5281 14.1154 10.6788 14.4672C9.82951 14.8189 8.91925 15 8 15C7.08075 15 6.1705 14.8189 5.32122 14.4672C4.47194 14.1154 3.70026 13.5998 3.05025 12.9497C2.40024 12.2997 1.88463 11.5281 1.53284 10.6788C1.18106 9.82951 1 8.91925 1 8C1 6.14348 1.7375 4.36301 3.05025 3.05025C4.36301 1.7375 6.14348 1 8 1C9.85652 1 11.637 1.7375 12.9497 3.05025C14.2625 4.36301 15 6.14348 15 8Z" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
492                </svg>
493                                <div class="language_icon">
494                    <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
495                        <path d="M19 10C19 12.3869 18.0518 14.6761 16.364 16.364C14.6761 18.0518 12.3869 19 10 19M19 10C19 7.61305 18.0518 5.32387 16.364 3.63604C14.6761 1.94821 12.3869 1 10 1M19 10H1M10 19C7.61305 19 5.32387 18.0518 3.63604 16.364C1.94821 14.6761 1 12.3869 1 10M10 19C11.
495657 19 13 14.97 13 10C13 5.03 11.657 1 10 1M10 19C8.343 19 7 14.97 7 10C7 5.03 8.343 1 10 1M10 1C7.61305 1 5.32387 1.94821 3.63604 3.63604C1.94821 5.32387 1 7.61305 1 10" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
496                    </svg>
497                    <div class="languages_select">
498                        <div class='language_title'></div>
499<form id="change-location-form" translate="no"
500	  x-data='{"locations":{"as":{"language":"en","label":"Asia (English)","currency":"USD","locale":"en-US","url":"https:\/\/www.enttec.com.au\/as\/store-policy\/"},"au":{"language":"en","label":"English (Australia)","currency":"AUD","locale":"en-US","url":"https:\/\/www.enttec.com.au\/store-policy\/"},"jp":{"language":"jp","label":"Japanese","currency":"USD","locale":"jp-JP","url":"https:\/\/www.enttec.com.au\/jp\/store-policy\/"}},"current":"au"}'>
501	<input type='hidden' name='location-change' value='true'>
502	<select class="hidden_select" @change="location.href=$event.target.value" name='current-location'>
503		<template x-for='key in Object.keys(locations)'>
504			<option class="single_lang" :value='`${locations[key].url}`' x-text='`${locations[key].label}`'
505					:selected='current == key'>
506			</option>
507		</template>
508	</select>
509    <div class="select_wrapper">
510        <template x-for='key in Object.keys(locations)'>
511            <a class="single_lang_2" href="" >
512                <span  x-text='`${locations[key].label}`' :selected='current == key'></span>
513                <span x-text='`${locations[key].language}-${locations[key].currency}`'></span>
514            </a>
515        </template>
516    </div>
517
518    <div class="change_website">Change website</div>
519</form>
520                    </div>
521
522                </div>
523                <div class="language_overlay"></div>
524
525                <a class="cart-customlocation"
526                   href="https://www.enttec.com.au/cart/"
527                   title="View your shopping cart">
528                    <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
529                        <path d="M1 1H3L3.4 3M3.4 3H19L15 11H5M3.4 3L5 11M5 11L2.707 13.293C2.077 13.923 2.523 15 3.414 15H15M15 15C14.4696 15 13.9609 15.2107 13.5858 15.5858C13.2107 15.9609 13 16.4696 13 17C13 17.5304 13.2107 18.0391 13.5858 18.4142C13.9609 18.7893 14.4696 19 15 19C15.5304 19 16.0391 18.7893 16.4142 18.4142C16.7893 18.0391 17 17.5304 17 17C17 16.4696 16.7893 15.9609 16.4142 15.5858C16.0391 15.2107 15.5304 15 15 15ZM7 17C7 17.5304 6.78929 18.0391 6.41421 18.4142C6.03914 18.7893 5.53043 19 5 19C4.46957 19 3.96086 18.7893 3.58579 18.4142C3.21071 18.0391 3 17.5304 3 17C3 16.4696 3.21071 15.9609 3.58579 15.5858C3.96086 15.2107 4.46957 15 5 15C5.53043 15 6.03914 15.2107 6.41421 15.5858C6.78929 15.9609 7 16.4696 7 17Z" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
530                    </svg>
531                    <!--                    <span class="cart-count-full">-->
532<!--                                    --><!--                                </span>-->
533<!--                    <span class="cart-total">-->
534<!--                                    --><!--                                </span>-->
535                </a>
536
537                                <a href="https://www.enttec.com.au/my-account/" class="btn text-uppercase btn-primary ml-3 border-round-0">Login / Signup</a>
538                
539            </div>
540
541        </div>
542    </div>
543            <div id="wrapper">
544            <!-- header -->
545            
545<script>jQuery(document).ready(function($){$('body').addClass('noBannerApplied');});</script>
545
546
547                        <header class="header clear mb-5" role="banner">
548
549                <div class="header-inner-wrapper">
550                    <div class="header-inner ">
551                        <div class="title_breadcrumb "><h1>Store Policy</h1><nav class="woocommerce-breadcrumb" aria-label="Breadcrumb"><a href="https://www.enttec.com.au">Home</a>&nbsp;&#47;&nbsp;<span class="current_post">Store Policy</span></nav></div>
552
553                    </div>
554
555                </div>
556
557            </header>
558            <!-- /header -->
559            
560        </div>
561        <!-- /wrapper -->
562            	    <div id="container" >
563		    <div class="contact_overlay" id="contact_overlay">
564        <div class="contact_wrap">
565            <img class="contact_close" src="https://www.enttec.com.au/wp-content/themes/eshop/img/x_icon.svg" alt="close">
566            <div class="contact_content">
567                <div class="title">
568                    <span> Get in touch </span> with us today                </div>
569                <div class="mail_container">
570                                            <a href="mailto:[email protected]" class="mail">
571                            <img src="https://www.enttec.com.au/wp-content/themes/eshop/img/mail_icon.svg" alt="Mail icon">
572                            <span>
573                            [email protected]                        </span>
574                        </a>
575                                            <a href="mailto:[email protected]" class="mail">
576                            <img src="https://www.enttec.com.au/wp-content/themes/eshop/img/mail_icon.svg" alt="Mail icon">
577                            <span>
578                            [email protected]                        </span>
579                        </a>
580                                    </div>
581                <div class="phone_container">
582
583                    <a href="tel:+61 (03) 9763 5755">
584                        <img src="https://www.enttec.com.au/wp-content/themes/eshop/img/phone_icon.svg" alt="Phone icon">
585                        <span>
586                           +61 (03) 9763 5755                        </span></a>
587                </div>
588                                    <div class="phone_container">
589
590                        <a href="https://wa.me/61466122276">
591                            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path d="M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z"/></svg>
592                            <span>
593                           Chat on WhatsApp                        </span></a>
594                    </div>
595
596                
597                
598                
599                        <div class="message_first">
600                            Your store location is currently set to                            <u>Australia</u>                        </div>
601                        <div class="message_second">
602                            If this is incorrect please select your country here:                        </div>
603
604                                                <select class="country_selectbox" name="country" data-placeholder="Select a country / region…">
605                            <option value="" data-url="">Select a country / region…</option>
606                                                            <option value="AF" data-url="https://enttec.ae/global/store-policy/">Afghanistan</option>
607                                                            <option value="AL" data-url="https://www.enttec.co.uk/en/store-policy/">Albania</option>
608                                                            <option value="AD" data-url="https://www.enttec.co.uk/en/store-policy/">Andorra</option>
609                                                            <option value="AR" data-url="https://www.enttec.com/store-policy/">Argentina</option>
610                                                            <option value="AM" data-url="https://www.enttec.com.au/as/store-policy/">Armenia</option>
611                                                            <option value="AM" data-url="https://www.enttec.co.uk/en/store-policy/">Armenia</option>
612                                                            <option value="AU" data-url="https://www.enttec.com.au/store-policy/">Australia</option>
613                                                            <option value="AT" data-url="https://www.enttec.co.uk/en/store-policy/">Austria</option>
614                                                            <option value="AZ" data-url="https://www.enttec.com.au/as/store-policy/">Azerbaijan</option>
615                                                            <option value="BS" data-url="https://www.enttec.com/store-policy/">Bahamas</option>
616                                                            <option value="BH" data-url="https://enttec.ae/global/store-policy/">Bahrain</option>
617                                                            <option value="BD" data-url="https://enttec.ae/global/store-policy/">Bangladesh</option>
618                                                            <option value="BY" data-url="https://www.enttec.co.uk/en/store-policy/">Belarus</option>
619                                                            <option value="PW" data-url="https://www.enttec.com.au/store-policy/">Belau</option>
620                                                            <option value="BE" data-url="https://www.enttec.co.uk/en/store-policy/">Belgium</option>
621                                                            <option value="BT" data-url="https://enttec.ae/global/store-policy/">Bhutan</option>
622                                                            <option value="BO" data-url="https://www.enttec.com/store-policy/">Bolivia</option>
623                                                            <option value="BA" data-url="https://www.enttec.co.uk/en/store-policy/">Bosnia and Herzegovina</option>
624                                                            <option value="BR" data-url="https://www.enttec.com/store-policy/">Brazil</option>
625                                                            <option value="BN" data-url="https://www.enttec.com.au/as/store-policy/">Brunei</option>
626                                                            <option value="BG" data-url="https://www.enttec.co.uk/en/store-policy/">Bulgaria</option>
627                                                            <option value="KH" data-url="https://www.enttec.com.au/as/store-policy/">Cambodia</option>
628                                                            <option value="CA" data-url="https://www.enttec.com/store-policy/">Canada</option>
629                                                            <option value="CL" data-url="https://www.enttec.com/store-policy/">Chile</option>
630                                                            <option value="CN" data-url="https://enttec.com.cn/store-policy/">China</option>
631                                                            <option value="CO" data-url="https://www.enttec.com/store-policy/">Colombia</option>
632                                                            <option value="CR" data-url="https://www.enttec.com/store-policy/">Costa Rica</option>
633                                                            <option value="HR" data-url="https://www.enttec.co.uk/en/store-policy/">Croatia</option>
634                                                            <option value="CU" data-url="https://www.enttec.com/store-policy/">Cuba</option>
635                                                            <option value="CY" data-url="https://www.enttec.co.uk/en/store-policy/">Cyprus</option>
636                                                            <option value="CZ" data-url="https://www.enttec.co.uk/en/store-policy/">Czech Republic</option>
637                                                            <option value="DK" data-url="https://www.enttec.co.uk/en/store-policy/">Denmark</option>
638                                                            <option value="DO" data-url="https://www.enttec.com/store-policy/">Dominican Republic</option>
639                                                            <option value="EC" data-url="https://www.enttec.com/store-policy/">Ecuador</option>
640                                                            <option value="SV" data-url="https://www.enttec.com/store-policy/">El Salvador</option>
641                                                            <option value="GQ" data-url="https://enttec.ae/global/store-policy/">Equatorial Guinea</option>
642                                                            <option value="EE" data-url="https://www.enttec.co.uk/en/store-policy/">Estonia</option>
643                                                            <option value="FJ" data-url="https://www.enttec.com.au/store-policy/">Fiji</option>
644                                                            <option value="FI" data-url="https://www.enttec.co.uk/en/store-policy/">Finland</option>
645                                                            <option value="FR" data-url="https://www.enttec.co.uk/fr/store-policy/">France</option>
646                                                            <option value="GE" data-url="https://www.enttec.co.uk/en/store-policy/">Georgia</option>
647                                                            <option value="DE" data-url="https://www.enttec.co.uk/de/store-policy/">Germany</option>
648                                                            <option value="GR" data-url="https://www.enttec.co.uk/en/store-policy/">Greece</option>
649                                                            <option value="GT" data-url="https://www.enttec.com/store-policy/">Guatemala</option>
650                                                            <option value="GY" data-url="https://www.enttec.com/store-policy/">Guyana</option>
651                                                            <option value="HT" data-url="https://www.enttec.com/store-policy/">Haiti</option>
652                                                            <option value="HK" data-url="https://enttec.com.cn/store-policy/">Hong Kong</option>
653                                                            <option value="HU" data-url="https://www.enttec.co.uk/en/store-policy/">Hungary</option>
654                                                            <option value="IS" data-url="https://www.enttec.co.uk/en/store-policy/">Iceland</option>
655                                                            <option value="IN" data-url="https://enttec.ae/global/store-policy/">India</option>
656                                                            <option value="ID" data-url="https://www.enttec.com.au/as/store-policy/">Indonesia</option>
657                                                            <option value="IR" data-url="https://enttec.ae/global/store-policy/">Iran</option>
658                                                            <option value="IQ" data-url="https://enttec.ae/global/store-policy/">Iraq</option>
659                                                            <option value="IE" data-url="https://www.enttec.co.uk/en/store-policy/">Ireland</option>
660                                                            <option value="IL" data-url="https://www.enttec.co.uk/en/store-policy/">Israel</option>
661                                                            <option value="IT" data-url="https://www.enttec.co.uk/it/store-policy/">Italy</option>
662                                                            <option value="JP" data-url="https://www.enttec.com.au/jp/store-policy/">Japan</option>
663                                                            <option value="JO" data-url="https://enttec.ae/global/store-policy/">Jordan</option>
664                                                            <option value="KZ" data-url="https://enttec.ae/global/store-policy/">Kazakhstan</option>
665                                                            <option value="KI" data-url="https://www.enttec.com.au/store-policy/">Kiribati</option>
666                                                            <option value="KW" data-url="https://enttec.ae/global/store-policy/">Kuwait</option>
667                                                            <option value="KG" data-url="https://enttec.ae/global/store-policy/">Kyrgyzstan</option>
668                                                            <option value="LA" data-url="https://www.enttec.com.au/as/store-policy/">Laos</option>
669                                                            <option value="LV" data-url="https://www.enttec.co.uk/en/store-policy/">Latvia</option>
670                                                            <option value="LB" data-url="https://enttec.ae/global/store-policy/">Lebanon</option>
671                                                            <option value="LI" data-url="https://www.enttec.co.uk/en/store-policy/">Liechtenstein</option>
672                                                            <option value="LT" data-url="https://www.enttec.co.uk/en/store-policy/">Lithuania</option>
673                                                            <option value="LU" data-url="https://www.enttec.co.uk/en/store-policy/">Luxembourg</option>
674                                                            <option value="MO" data-url="https://enttec.com.cn/store-policy/">Macao</option>
675                                                            <option value="MG" data-url="https://enttec.ae/global/store-policy/">Madagascar</option>
676                                                            <option value="MY" data-url="https://www.enttec.com.au/as/store-policy/">Malaysia</option>
677                                                            <option value="MV" data-url="https://enttec.ae/global/store-policy/">Maldives</option>
678                                                            <option value="MT" data-url="https://www.enttec.co.uk/en/store-policy/">Malta</option>
679                                                            <option value="MH" data-url="https://www.enttec.com.au/store-policy/">Marshall Islands</option>
680                                                            <option value="MX" data-url="https://www.enttec.com/store-policy/">Mexico</option>
681                                                            <option value="FM" data-url="https://www.enttec.com.au/store-policy/">Micronesia</option>
682                                                            <option value="MD" data-url="https://www.enttec.co.uk/en/store-policy/">Moldova</option>
683                                                            <option value="MC" data-url="https://www.enttec.co.uk/en/store-policy/">Monaco</option>
684                                                            <option value="MN" data-url="https://www.enttec.com.au/as/store-policy/">Mongolia</option>
685                                                            <option value="ME" data-url="https://www.enttec.co.uk/en/store-policy/">Montenegro</option>
686                                                            <option value="NR" data-url="https://www.enttec.com.au/store-policy/">Nauru</option>
687                                                            <option value="NP" data-url="https://enttec.ae/global/store-policy/">Nepal</
687option>
688                                                            <option value="NL" data-url="https://www.enttec.co.uk/nl/store-policy/">Netherlands</option>
689                                                            <option value="NZ" data-url="https://www.enttec.com.au/store-policy/">New Zealand</option>
690                                                            <option value="NI" data-url="https://www.enttec.com/store-policy/">Nicaragua</option>
691                                                            <option value="KP" data-url="https://www.enttec.com.au/as/store-policy/">North Korea</option>
692                                                            <option value="NO" data-url="https://www.enttec.co.uk/en/store-policy/">Norway</option>
693                                                            <option value="OM" data-url="https://enttec.ae/global/store-policy/">Oman</option>
694                                                            <option value="PK" data-url="https://enttec.ae/global/store-policy/">Pakistan</option>
695                                                            <option value="PA" data-url="https://www.enttec.com/store-policy/">Panama</option>
696                                                            <option value="PG" data-url="https://www.enttec.com.au/store-policy/">Papua New Guinea</option>
697                                                            <option value="PY" data-url="https://www.enttec.com/store-policy/">Paraguay</option>
698                                                            <option value="PE" data-url="https://www.enttec.com/store-policy/">Peru</option>
699                                                            <option value="PH" data-url="https://www.enttec.com.au/as/store-policy/">Philippines</option>
700                                                            <option value="PL" data-url="https://www.enttec.co.uk/pl/store-policy/">Poland</option>
701                                                            <option value="PT" data-url="https://www.enttec.co.uk/en/store-policy/">Portugal</option>
702                                                            <option value="QA" data-url="https://enttec.ae/global/store-policy/">Qatar</option>
703                                                            <option value="RO" data-url="https://www.enttec.co.uk/ro/store-policy/">Romania</option>
704                                                            <option value="RU" data-url="https://enttec.com.ru/store-policy/">Russia</option>
705                                                            <option value="SM" data-url="https://www.enttec.co.uk/en/store-policy/">San Marino</option>
706                                                            <option value="SA" data-url="https://enttec.ae/global/store-policy/">Saudi Arabia</option>
707                                                            <option value="RS" data-url="https://www.enttec.co.uk/en/store-policy/">Serbia</option>
708                                                            <option value="SG" data-url="https://www.enttec.com.au/as/store-policy/">Singapore</option>
709                                                            <option value="SK" data-url="https://www.enttec.co.uk/en/store-policy/">Slovakia</option>
710                                                            <option value="SI" data-url="https://www.enttec.co.uk/en/store-policy/">Slovenia</option>
711                                                            <option value="SB" data-url="https://www.enttec.com.au/store-policy/">Solomon Islands</option>
712                                                            <option value="KR" data-url="https://www.enttec.com.au/as/store-policy/">South Korea</option>
713                                                            <option value="ES" data-url="https://www.enttec.co.uk/es/store-policy/">Spain</option>
714                                                            <option value="LK" data-url="https://enttec.ae/global/store-policy/">Sri Lanka</option>
715                                                            <option value="SR" data-url="https://www.enttec.com/store-policy/">Suriname</option>
716                                                            <option value="SE" data-url="https://www.enttec.co.uk/en/store-policy/">Sweden</option>
717                                                            <option value="CH" data-url="https://www.enttec.co.uk/en/store-policy/">Switzerland</option>
718                                                            <option value="SY" data-url="https://enttec.ae/global/store-policy/">Syria</option>
719                                                            <option value="TW" data-url="https://enttec.com.cn/store-policy/">Taiwan</option>
720                                                            <option value="TJ" data-url="https://enttec.ae/global/store-policy/">Tajikistan</option>
721                                                            <option value="TH" data-url="https://www.enttec.com.au/as/store-policy/">Thailand</option>
722                                                            <option value="TO" data-url="https://www.enttec.com.au/store-policy/">Tonga</option>
723                                                            <option value="TM" data-url="https://enttec.ae/global/store-policy/">Turkmenistan</option>
724                                                            <option value="TV" data-url="https://www.enttec.com.au/store-policy/">Tuvalu</option>
725                                                            <option value="TR" data-url="https://www.enttec.co.uk/tr/store-policy/">Türkiye</option>
726                                                            <option value="UA" data-url="https://www.enttec.co.uk/en/store-policy/">Ukraine</option>
727                                                            <option value="AE" data-url="https://enttec.ae/store-policy/">United Arab Emirates</option>
728                                                            <option value="GB" data-url="https://www.enttec.co.uk/eu/store-policy/">United Kingdom (UK)</option>
729                                                            <option value="US" data-url="https://www.enttec.com/store-policy/">United States (US)</option>
730                                                            <option value="UY" data-url="https://www.enttec.com/store-policy/">Uruguay</option>
731                                                            <option value="UZ" data-url="https://enttec.ae/global/store-policy/">Uzbekistan</option>
732                                                            <option value="VU" data-url="https://www.enttec.com.au/store-policy/">Vanuatu</option>
733                                                            <option value="VA" data-url="https://www.enttec.co.uk/en/store-policy/">Vatican</option>
734                                                            <option value="VE" data-url="https://www.enttec.com/store-policy/">Venezuela</option>
735                                                            <option value="VN" data-url="https://www.enttec.com.au/as/store-policy/">Vietnam</option>
736                                                            <option value="YE" data-url="https://www.enttec.com.au/as/store-policy/">Yemen</option>
737                                                    </select>
738                                                </div>
739        </div>
740    </div>
741<script>
742    jQuery(document).ready(function($) {
743        var modal = document.getElementById('contact_overlay');
744        // When the user clicks anywhere outside of the modal, close it
745        window.onclick = function(event) {
746            if (event.target == modal) {
747                modal.style.display = "none";
748            }
749        }
750
751    });
752</script>
752		    <!-- wrapper -->
753            		    <div id="wrapper">
754
755
756            
757
758
759<main role="main">
760	<!-- section -->
761	<section>
762						<!-- article -->
763				<article id="post-2946" class="post-2946 page type-page status-publish hentry">
764					<div class="lgl-doc">
765<header class="lgl-head">
766<div class="lgl-icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path pathLength="1" d="M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z"/><path pathLength="1" d="M3 6h18"/><path pathLength="1" d="M16 10a4 4 0 0 1-8 0"/></svg></div>
767<h1 class="lgl-title">Store Policy</h1>
768<div class="lgl-meta">Last updated: 2 June 2026</div>
769</header>
770<nav class="lgl-toc"><strong>On this page</strong></p>
771<ul>
772<li><a href="#enttec-com-au-store-policy">ENTTEC.COM.AU STORE POLICY</a></li>
773<li><a href="#processing-orders-shipping-conditions-refund">Processing orders – Shipping conditions – Refund</a></li>
774<li><a href="#background">BACKGROUND</a></li>
775<li><a href="#schedule-1-description-of-goods-lighting-equipment">SCHEDULE 1 | Description of goods: Lighting equipment</a></li>
776<li><a href="#agreement-to-buy-and-sell">Agreement to buy and sell</a></li>
777<li><a href="#placement-of-orders">Placement of orders</a></li>
778<li><a href="#out-of-stock-item">Out of stock item:</a></li>
779<li><a href="#acceptance-of-orders">Acceptance of orders</a></li>
780<li><a href="#packing-of-orders">Packing of orders</a></li>
781<li><a href="#shipment-processing-time">Shipment processing time</a></li>
782<li><a href="#shipment-locations">Shipment locations</a></li>
783<li><a href="#domestic-and-international">Domestic and international</a></li>
784<li><a href="#shipping-restrictions">Shipping restrictions</a></li>
785<li><a href="#shipment-rates-and-delivery-estimates">Shipment rates and delivery estimates</a></li>
786<li><a href="#please-note">Please note:</a></li>
787<li><a href="#tracking-options-and-order-status">Tracking options and order status</a></li>
788<li><a href="#domestic-and-international-2">Domestic and International</a></li>
789<li><a href="#international-customs-duties-and-taxes">International customs, duties, and taxes</a></li>
790<li><a href="#receiving-shipments-and-damages">Receiving shipments and damages</a></li>
791<li><a href="#missing-or-lost-package">Missing or lost package</a></li>
792<li><a href="#product-warranty">Product warranty</a></li>
793<li><a href="#payment">Payment</a></li>
794<li><a href="#typographical-errors">Typographical errors</a></li>
795<li><a href="#refund-policy">Refund policy</a></li>
796<li><a href="#general">General</a></li>
797<li><a href="#australian-consumer-law">Australian Consumer Law</a></li>
798<li><a href="#defective-products">Defective products</a></li>
799<li><a href="#cancellation-and-change-of-mind">Cancellation and Change of Mind</a></li>
800<li><a href="#products-damaged-during-delivery">Products Damaged During Delivery</a></li>
801<li><a href="#exceptions">Exceptions</a></li>
802<li><a href="#shipping-costs-for-returns">Shipping Costs for Returns</a></li>
803<li><a href="#response-time">Response Time</a></li>
804<li><a href="#refund-policy-for-software-purchases">Refund policy for software purchases</a></li>
805<li><a href="#how-to-return-products">How to Return Products</a></li>
806<li><a href="#return-notes">Return notes</a></li>
807<li><a href="#contact-us">Contact Us</a></li>
808</ul>
809</nav>
810<article class="lgl-body">
811<h2 id="enttec-com-au-store-policy">ENTTEC.COM.AU STORE POLICY</h2>
812<h2 id="processing-orders-shipping-conditions-refund">Processing orders – Shipping conditions – Refund</h2>
813<p>All new products listed at enttec.com.au are factory sealed and include a full manufacturer’s warranty.</p>
814<h2 id="background">BACKGROUND</h2>
815<ol>
816<li>The Seller is ENTTEC, supplier of the Goods described in item 1 of schedule 1 (Goods).</li>
817<li>The Buyer wishes to buy Goods from the Seller by orders placed from time to time.</li>
818<li>The Seller has agreed to sell, and the Buyer has agreed to buy Goods on the terms and conditions set out in this agreement.</li>
819</ol>
820<h2 id="schedule-1-description-of-goods-lighting-equipment">SCHEDULE 1 | Description of goods: Lighting equipment</h2>
821<h2 id="agreement-to-buy-and-sell">Agreement to buy and sell</h2>
822<p>In return for payment for goods purchased on enttec.com.au, the Seller sells, and the Buyer buys the Goods on the terms of this agreement.</p>
823<h2 id="placement-of-orders">Placement of orders</h2>
824<p>Orders will be processed for fulfillment within 24 hours of receipt during regular business days. Most items are in stock and ship the same day if ordered before the following cut-off times:</p>
825<ul>
826<li>2:00pm AEST</li>
827</ul>
828<h2 id="out-of-stock-item">Out of stock item:</h2>
829<p>However, we cannot guarantee that all items will always be in stock due to occasional fluctuations in demand and supply chain timing. Therefore, if you would like confirmation of stock availability prior to ordering, please email [email protected].</p>
830<p>If for some unforeseen reason an item is no longer available or back-ordered for an extended period of time, you will be notified within 24 hours of order placement. Please email us if you wish to receive stock confirmation prior to ordering.</p>
831<p>Once your order is processed, you will receive an email regarding your order status. Please keep this email as your proof of purchase.</p>
832<h2 id="acceptance-of-orders">Acceptance of orders</h2>
833<p>Your receipt of an electronic order confirmation does not signify our acceptance of your order, nor does it constitute confirmation of our offer to sell. Enttec.com reserves the right at any time after receipt of your order to accept or decline your order for any reason. We also reserve the right to ship a manufacturer-certified replacement if the manufacturer has upgraded or modified an item.</p>
834<h2 id="packing-of-orders">Packing of orders</h2>
835<p>ENTTEC will ensure each order is safely and securely packed for transportation to the Buyer having regard to:</p>
836<ol>
837<li>the fragility and perishability of the Goods;</li>
838<li>the distance the Goods are likely to travel; and</li>
839<li>the method of transportation used to transport the Goods.</li>
840</ol>
841<p>Customers are requested to ensure that their shipping address is correct before completing checkout. You can review and edit your shipping address during checkout.</p>
842<p>Please double-check your details before you complete your order. Enttec.com.au will only ever ship to the “shipping address” that is entered by the customer, as set out in our shipping policy. </p>
843<p>Once the order has left the Enttec.com.au warehouse, it is the customers’ responsibility to contact the courier, if they want the delivery address to be changed.</p>
844<p>Tracking reference numbers will be emailed to the customer’s email address once goods are dispatched from the ENTTEC warehouse.</p>
845<h2 id="shipment-processing-time">Shipment processing time</h2>
846<p>Processing time refers to the time it takes for us to prepare your order for shipping.</p>
847<p>After your payment is authorised and verified, all orders are processed within between 2 and 5 working days. We will contact you for some reason if there are any delays.</p>
848<h2 id="shipment-locations">Shipment locations</h2>
849<h2 id="domestic-and-international">Domestic and international</h2>
850<p>ENTTEC Pty Ltd ships domestically as well as internationally.</p>
851<p>If you have a question about domestic or international deliveries, please contact us at sales.</p>
852<h2 id="shipping-restrictions">Shipping restrictions</h2>
853<p>Our company does ship to both commercial and domestic addresses, but NOT to postal address.</p>
854<h2 id="shipment-rates-and-delivery-estimates">Shipment rates and delivery estimates</h2>
855<p>We endeavor to get your order to you as soon as possible. Once your order is placed, an estimated delivery time will be provided to you. Delivery times are estimates and commence from the date of shipment, rather than the date of order. Delivery times are to be used as a guide only and are subject to the acceptance and approval of your order. Estimated arrival dates are not guaranteed. Weather delays and other unforeseen circumstances may impact delivery time. Unless there are exceptional circumstances, we make every effort to fulfill your order.</p>
856<p>Enttec.com.au calculates shipping and handling rates based on the then-current carrier shipping tables. In the event of a shipping adjustment due to the nature (size and weight) of your order, the total may be adju
856sted to compensate. This occurrence is rare and most orders are assessed with the shipping charges calculated at check out.</p>
857<h2 id="please-note">Please note:</h2>
858<p>Business day means Monday to Friday, except holidays.</p>
859<p>Orders are not shipped or delivered on weekends or holidays.</p>
860<p>The date of delivery may vary due to carrier shipping practices, delivery location, method of delivery, and the items ordered.</p>
861<p>Products may be delivered in separate shipments.</p>
862<p>When placing your order, we consider these factors when calculating the Estimated Delivery Date:</p>
863<ol>
864<li>Transit Time: The amount of time it takes your order to leave our distribution centre and arrive at the local delivery carrier.</li>
865<li>Weight factor: Shipping costs are based on the weight of your order and the delivery method. To find out how much your order will cost, simply add the items you would like to purchase to your cart and proceed to the checkout page. Once at the checkout screen, shipping charges will be displayed.</li>
866</ol>
867<p>Due to occasional fluctuations in demand and supply chain timing, packages to and from our facility in Keysborough may be delayed. We appreciate your patience during this time.</p>
868<p>We will not be responsible for wrong shipping addresses if you provide incorrect information.</p>
869<p>In-store pickup dates vary based on product availability.</p>
870<h2 id="tracking-options-and-order-status">Tracking options and order status</h2>
871<p>ENTTEC Pty Ltd aims to provide visibility and transparency throughout the shipment process. Once your order is confirmed and shipped, you will receive a link to track your package.</p>
872<p>To check on the status of your order anytime, please visit our Order Status. If you require additional information, please email sales.</p>
873<h2 id="domestic-and-international-2">Domestic and International</h2>
874<p>All orders delivered within Australia automatically have a tracking number.</p>
875<p>International orders are sent with DHL Express. This service comes with tracking and your tracking number will be sent to you once it has been posted. If we are requested to make alternative shipping arrangements, we cannot guarantee tracking and will not be responsible for the delivery of orders sent internationally.</p>
876<h2 id="international-customs-duties-and-taxes">International customs, duties, and taxes</h2>
877<p>All orders shipping to a destination outside of Australia are subject to the import duties, fees, and taxes of the destination country. Delays in delivery may occur if your package is randomly selected by your country’s Customs Department. ENTTEC Pty Ltd is not responsible for any possible customs and taxes applied to your order. We have no control over the process or additional charges associated with the delivery and importation of your order (package) into your country. We do not benefit in any way from these chargers and we work very closely with our carriers to ensure as few delays as possible. All fees imposed during or after shipping are the responsibility of the customer. You agree that you are responsible for any duty, taxes, and customs requirements or other like taxes, fees, levies, costs or expenses associated with importing products you purchase from us and shipping them internationally.</p>
878<h2 id="receiving-shipments-and-damages">Receiving shipments and damages</h2>
879<p>Before signing for any trucking delivery, it is the customer’s responsibility to examine all items for signs of damage. If any damage is found, make certain that the delivering agent notes the damage on the release form.</p>
880<p>If there is any damage to the packaging on delivery, contact us immediately at +61 3 9763 5755 or at sales, so a claim can be made.</p>
881<h2 id="missing-or-lost-package">Missing or lost package</h2>
882<p>There are several reasons why a package gets lost or becomes a delivery exception. We’ve found that more often than not, the package is either in the building or with a neighbour. ENTTEC Pty Ltd politely requests that customers look in common courier hiding spots. Please take a look around and let us know if you find it. If you haven’t located your order, please contact us at +61 3 9763 5755 to report missing or lost packages.</p>
883<h2 id="product-warranty">Product warranty</h2>
884<p>All warranty service for original customers is provided by ENTTEC. The customer is responsible for all shipping charges, if any, to the warranty location. This warranty does not cover any loss of business, profits, or other consequential damage, either real or perceived, that may have resulted from any malfunction of the product. Damage from flood, lightning strikes, earthquake, any other acts of nature/God, mishandling, dropping, or infestation is not covered by this warranty. This warranty is also void if the manufacturer determines that the product has been damaged due to insufficient packaging during any return shipment. The manufacturer reserves the right to determine whether alterations have been made, or damages caused, by such facts that would serve to void the terms of this warranty.</p>
885<p>More information is available on our Website Terms and Conditions of Use.</p>
886<h2 id="payment">Payment</h2>
887<p>Unless stated otherwise, the Price is exclusive of GST. The Buyer must pay the Price, plus the requisite GST, on checkout of the order by way of electronic payment.</p>
888<h2 id="typographical-errors">Typographical errors</h2>
889<p>In the event a product is listed incorrectly due to a typographical error, manufacturer data error, product description and/or errors in pricing, Enttec.com shall have the right to refuse or cancel any such orders whether or not the order has been confirmed and your credit card charged. If your credit card has already been charged for the purchase and your order is canceled, Enttec.com.au shall immediately issue a full credit to your credit card account.</p>
890<h2 id="refund-policy">Refund policy</h2>
891<p>This Refund Policy (“Policy”) applies to the purchases made through our web store www.enttec.com.au</p>
892<h2 id="general">General</h2>
893<p>We offer refunds, repairs, and replacements in accordance with the Australian Consumer Law and on the terms set out in this Refund Policy (“Policy”).</p>
894<p>Any benefits set out in this Policy may apply in addition to consumer’s rights under the Australian Consumer Law.</p>
895<p>Before making a purchase, please read this Policy so that you can understand your rights and what you can expect from us if you are not satisfied with your order.</p>
896<h2 id="australian-consumer-law">Australian Consumer Law</h2>
897<p>Under the Australian Consumer Law:</p>
898<p>Our goods and services come with guarantees that cannot be excluded under the Australian Consumer Law. For major failures with the service, you are entitled:</p>
899<ol>
900<li>to cancel your service contract with us; and</li>
901<li>to a refund for the unused portion, or to compensation for its reduced value.</li>
902</ol>
903<p>You are also entitled to choose a refund or replacement for major failures with goods. If a failure with the goods does not amount to a major failure, you are entitled to have the failure rectified in a reasonable time. If this is not done you are entitled to a refund for the goods and obtain a refund of any unused portion.</p>
904<h2 id="defective-products">Defective products</h2>
905<p>Enttec.com.au offers a 30-day (from date of shipment) replacement or credit policy for defective products. Customers who do not want an item repaired or replaced can request a return material authorization (RMA).
905</p>
906<h2 id="cancellation-and-change-of-mind">Cancellation and Change of Mind</h2>
907<p>In the event that you receive the products or services you have purchased, as stated, but that you simply change your mind, we may, at our discretion, offer you a refund or exchange, provided that:</p>
908<ol>
909<li>You notify us within 7 days of receipt.</li>
910<li>In the case of services, the services have not already been performed.</li>
911<li>The following conditions are satisfied:
912<ol>
913<li>the product has not been unopened</li>
914<li>the product must be returned with the RMA (Return Material Authorisation)</li>
915</ol>
916</li>
917</ol>
918<p>Please note that a 15% restocking fee will be deducted from the refund to cover testing, cleaning and repackaging expenses. In addition to this fee, a pro-rated charge (up to 100%) will be assessed for items that are returned incomplete or with non-resaleable parts.</p>
919<h2 id="products-damaged-during-delivery">Products Damaged During Delivery</h2>
920<p>In the event that the product you ordered has been damaged during delivery:</p>
921<ol>
922<li>Please contact us as soon as possible.</li>
923<li>Any damaged product must be returned in the condition in which it was received, together with any packaging and other items which you received with the damaged product.</li>
924</ol>
925<p>We will arrange to repair or collect the damaged product and replace it with an equivalent product, or to refund it, provided that you have contacted us within the following time from the date of receipt of the product: 15 days.</p>
926<h2 id="exceptions">Exceptions</h2>
927<p>Notwithstanding the other provisions of this Policy, we may refuse to provide a repair, replacement or refund for a product or service purchased by you if:</p>
928<ol>
929<li>You misused the said product in a way that caused the problem.</li>
930<li>You knew or were made aware of the problem(s) with the product or service before you purchased it.</li>
931<li>You asked for a service to be done in a certain manner, or you asked for alterations to a product, against our advice, or you were unclear about what you wanted.</li>
932<li>Any other exceptions apply under the Australian Consumer Law.</li>
933</ol>
934<h2 id="shipping-costs-for-returns">Shipping Costs for Returns</h2>
935<p>In the event that a product you have purchased fails to meet one or more Consumer Guarantees under the Australian Consumer Law, we shall bear any cost of shipping the said product (the “Returned Product”) back to us, as well as any cost of shipping any replacement product to you.</p>
936<p>If the Returned Product is returned following a cancellation or change of mind, then you are responsible for organising for the Returned Product to be returned to us.</p>
937<p>In the event that we organise and pay for the inspection, postage, shipping, transportation or collection of a Returned Product, and it turns out not to be eligible for a repair, replacement or refund under the terms of this Policy (including under the Australian Consumer Law), then you will be required to pay the costs of any inspection, postage, shipping, transportation or collection of the Returned Product.</p>
938<h2 id="response-time">Response Time</h2>
939<p>We aim to process any requests for repairs, replacements or refunds within 15 days of receipt.</p>
940<h2 id="refund-policy-for-software-purchases">Refund policy for software purchases</h2>
941<p>Software that has not been activated within 7 days of purchase may be eligible for a refund. Once fully activated, no refund will be given. Free demo versions are available and can be tried before purchase.</p>
942<h2 id="how-to-return-products">How to Return Products</h2>
943<p>
943You can contact us at the end of this Policy to discuss a return using the information.</p>
944<p>Unless otherwise defined in our sole discretion, we shall pay all refunds in the same form as the original purchase or to the same account or credit card used to make the original purchase.</p>
945<p>To be eligible for a refund, repair or replacement, you must provide proof of purchase along with a completed RMA.</p>
946<h2 id="return-notes">Return notes</h2>
947<p>All returns must be pre-approved by applying for an RMA number (Return Merchandise Authorization). To accomplish this, please email us and include a description of the issue. Any item returned or refused without applying for an RMA will be subject to a 15% restocking fee. Once your request has been received, you will be contacted within 1 business day with an RMA number and instructions for sending back the item(s). The RMA number, once provided, is valid for 2 weeks only. You must re-package any item(s) being returned as it was delivered to you, with all components, materials, and documentation. If you received your item double boxed, it must be returned in this manner. Once shipped, Email the tracking number(s) to us with your Enttec order number. We will notify you via email of your refund once we have received and processed the returned item(s).</p>
948<h2 id="contact-us">Contact Us</h2>
949<p>If you wish to speak to us about this Policy or about any refund, repairs or replacements, please contact us at [email protected].</p>
950</article>
951</div>
952				</article>
953				<!-- /article -->
954					</section>
955	<!-- /section -->
956</main>
957
958
959<div class="ec-consent" id="ec-consent" role="dialog" aria-modal="false"
960     aria-labelledby="ec-consent-title" aria-describedby="ec-consent-body" hidden>
961
962	<h2 id="ec-consent-title" tabindex="-1">Cookies on this site</h2>
963	<p id="ec-consent-body">Some cookies keep the site working, like your region, cart and sign-in.
964		With your permission we also measure how pages are used so we can improve them.
965		<a href="https://www.enttec.com.au/cookie-policy/">Cookie policy</a></p>
966
967	<div class="ec-consent__actions">
968		<button type="button" class="ec-consent__btn" data-ec-act="reject">Reject optional</button>
969		<button type="button" class="ec-consent__btn" data-ec-act="accept">Accept all</button>
970	</div>
971
972	<button type="button" class="ec-consent__more" id="ec-consent-more"
973	        aria-expanded="false" aria-controls="ec-consent-panel">Choose what to allow</button>
974
975	<div class="ec-consent__panel" id="ec-consent-panel" hidden>
976		<div class="ec-consent__row">
977			<div class="ec-consent__rowtext">
978				<h3>Strictly necessary</h3>
979				<p>Your region, cart, checkout and sign-in. The site cannot work without these.</p>
980			</div>
981			<span class="ec-consent__required">Always on</span>
982		</div>
983		<div class="ec-consent__row">
984			<div class="ec-consent__rowtext">
985				<h3>Analytics</h3>
986				<p>Google Analytics, so we can see which pages help and which do not.</p>
987			</div>
988			<label>
989				<input type="checkbox" id="ec-consent-analytics" aria-label="Allow analytics cookies">
990				<span class="ec-consent__switch"></span>
991			</label>
992		</div>
993		<div class="ec-consent__row">
994			<div class="ec-consent__rowtext">
995				<h3>Marketing</h3>
996				<p>Records which campaign or search brought you here, so we know what is worth doing again.</p>
997			</div>
998			<label>
999				<input type="checkbox" id="ec-consent-marketing" aria-label="Allow marketing cookies">
1000				<span class="ec-consent__switch"></span>
1001			</label>
1002		</div>
1003		<button type="button" class="ec-consent__save" id="ec-consent-save">Save my choices</button>
1004	</div>
1005</div>
1006
1007<div class="ec-consent-done" id="ec-consent-done" role="status" hidden></div>
1008
1009<script>
1010(function () {
1011	'use strict';
1012
1013	var card    = document.getElementById('ec-consent');
1014	var moreBtn = document.getElementById('ec-consent-more');
1015	var panel   = document.getElementById('ec-consent-panel');
1016	var doneEl  = document.getElementById('ec-consent-done');
1017	var title   = document.getElementById('ec-consent-title');
1018	var cbA     = document.getElementById('ec-consent-analytics');
1019	var cbM     = document.getElementById('ec-consent-marketing');
1020
1021	if (!card) { return; }
1022
1023	var YEAR   = 31556952;
1024	var reduce = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;
1025	var hideTimer, doneTimer;
1026
1027	function readCookie(name) {
1028		var m = document.cookie.match('(?:^|;\\s*)' + name + '=([^;]*)');
1029		return m ? decodeURIComponent(m[1]) : null;
1030	}
1031
1032	function writeCookie(name, value) {
1033		// Secure only where the page actually is secure. The previous version sent
1034		// Secure unconditionally, so on a plain-http origin (local dev) the browser
1035		// dropped the cookie and consent could never be recorded.
1036		var secure = location.protocol === 'https:' ? '; Secure' : '';
1037		document.cookie = name + '=' + value + '; path=/; max-age=' + YEAR + '; SameSite=Lax' + secure;
1038	}
1039
1040	/* Returns {a:bool, m:bool} or null when the visitor has never answered. */
1041	function readConsent() {
1042		var v = readCookie('enttecConsent');
1043		if (v) {
1044			var m = v.match(/^v1:a([01]):m([01])$/);
1045			if (m) { return { a: m[1] === '1', m: m[2] === '1' }; }
1046		}
1047		// Legacy-only visitor: honour the old answer rather than asking again.
1048		var legacy = readCookie('acceptCookies');
1049		if (legacy === 'yes') { return { a: true,  m: true  }; }
1050		if (legacy === 'no')  { return { a: false, m: false }; }
1051		return null;
1052	}
1053
1054	function applyConsent(c) {
1055		if (typeof gtag !== 'function') { return; }
1056		gtag('consent', 'update', {
1057			analytics_storage:  c.a ? 'granted' : 'denied',
1058			ad_storage:         c.m ? 'granted' : 'denied',
1059			ad_user_data:       c.m ? 'granted' : 'denied',
1060			ad_personalization: c.m ? 'granted' : 'denied'
1061		});
1062	}
1063
1064	function save(c) {
1065		writeCookie('enttecConsent', 'v1:a' + (c.a ? 1 : 0) + ':m' + (c.m ? 1 : 0));
1066		// See the mapping rule in the PHP comment above: 'yes' only when EVERY
1067		// optional category is granted. Any partial choice is 'no'.
1068		writeCookie('acceptCookies', (c.a && c.m) ? 'yes' : 'no');
1069		applyConsent(c);
1070	}
1071
1072	function close(message) {
1073		clearTimeout(hideTimer); clearTimeout(doneTimer);
1074		card.classList.add('is-out');
1075		// [hidden] rather than a transform: this is what removes the answered card
1076		// from the tab order and the accessibility tree.
1077		hideTimer = setTimeout(function () { card.hidden = true; }, reduce ? 0 : 200);
1078
1079		doneEl.textContent = message;
1080		doneEl.hidden = false;
1081		doneEl.classList.remove('is-out');
1082		doneTimer = setTimeout(function () {
1083			doneEl.classList.add('is-out');
1084			setTimeout(function () { doneEl.hidden = true; }, reduce ? 0 : 200);
1085		}, 3200);
1086
1087		// Hand off to the region popup if one is queued on this page, after a short
1088		// beat so it rises into the space this card vacated rather than stacking on
1089		// top of it. No-op when there is no popup.
1090		if (typeof window.enttecRevealRegionPopup === 'function') {
1091			setTimeout(window.enttecRevealRegionPopup, reduce ? 0 : 460);
1092		}
1093	}
1094
1095	/* moveFocus: only when the visitor deliberately reopened this from the footer
1096	 * link. On the automatic first appearance we must NOT pull focus out of the
1097	 * page they are reading; the card is non-modal and can wait for them. */
1098	function open(moveFocus) {
1099		var current = readConsent();
1100		if (current) { cbA.checked = current.a; cbM.checked = current.m; }
1101		card.classList.add('is-out');
1102		card.hidden = false;
1103		requestAnimationFrame(function () {
1104			card.classList.remove('is-out');
1105			if (moveFocus) { title.focus(); }
1106		});
1107	}
1108
1109	/* [hidden] stays the collapsed state because it is the one that actually takes
1110	 * the options out of the tab order and the accessibility tree. But display:none
1111	 * cannot be transitioned, so opening drops [hidden] first and adds .is-open on
1112	 * the NEXT frame (giving the transition a start state to move from), and
1113	 * closing reverses it, waiting for the animation before hiding. */
1114	var panelTimer;
1115	moreBtn.addEventListener('click', function () {
1116		var opening = panel.hidden;
1117		clearTimeout(panelTimer);
1118
1119		if (opening) {
1120			panel.hidden = false;
1121			requestAnimationFrame(function () { panel.classList.add('is-open'); });
1122		} else {
1123			panel.classList.remove('is-open');
1124			panelTimer = setTimeout(function () { panel.hidden = true; }, reduce ? 0 : 300);
1125		}
1126
1127		moreBtn.setAttribute('aria-expanded', String(opening));
1128		moreBtn.textContent = opening ? 'Hide options' : 'Choose what to allow';
1129	});
1130
1131	card.addEventListener('click', function (e) {
1132		var btn = e.target.closest('[data-ec-act]');
1133		if (!btn) { return; }
1134		var acceptAll = btn.getAttribute('data-ec-act') === 'accept';
1135		save({ a: acceptAll, m: acceptAll });
1136		close(acceptAll ? 'Thanks, all cookies allowed.' : 'Saved. Only essential cookies.');
1137	});
1138
1139	document.getElementById('ec-consent-save').addEventListener('click', function () {
1140		var c = { a: cbA.checked, m: cbM.checked };
1141		save(c);
1142		close('Saved. ' + ((c.a || c.m) ? 'Your choices are active.' : 'Only essential cookies.'));
1143	});
1144
1145	// Escape collapses the options layer only. Dismissing is never an answer:
1146	// silence is not consent, so there is no Escape-to-close on the card itself.
1147	document.addEventListener('keydown', function (e) {
1148		if (e.key === 'Escape' && !panel.hidden) { moreBtn.click(); moreBtn.focus(); }
1149	});
1150
1151	// Entry point for the "Cookie settings" control, which replaces the old
1152	// permanent #show-gdpr pill. See enttec-nav/definitions/copyright.php.
1153	//
1154	// Delegated, deliberately: this template is printed at the TOP of footer.php,
1155	// so the footer's own button does not exist yet when this runs. Binding
1156	// directly to it here would silently do nothing. Delegation also means the
1157	// cookie-policy page can offer the same control with no extra wiring.
1158	window.enttecOpenConsent = function () { open(true); };
1159	document.addEventListener('click', function (e) {
1160		var trigger = e.target.closest('[data-enttec-consent-open]');
1161		if (!trigger) { return; }
1162		e.preventDefault();
1163		open(true);
1164	});
1165
1166	var answered = readConsent();
1167	if (answered) {
1168		// Returning visitor: re-assert their choice for this page load and stay down.
1169		applyConsent(answered);
1170	} else {
1171		open(false);
1172	}
1173})();
1174</script>
1174
1175<button type="button" id="go-to-top" aria-label="Back to top" hidden>
1176	<svg class="gtt__icon" viewBox="0 0 24 24" aria-hidden="true" focusable="false">
1177		<!--
1178		  Drawn from y=9 to y=15 so the chevron's own midpoint is 12, the centre of
1179		  the 24-unit viewBox. The obvious "M6 14l6-6 6 6" spans 8 to 14, which
1180		  centres the glyph one unit high and renders it visibly above the label at
1181		  20px. Flexbox centres the SVG BOX, it cannot centre what you draw inside it.
1182		-->
1183		<path d="M6 15l6-6 6 6" fill="none" stroke="currentColor" stroke-width="2"
1184		      stroke-linecap="round" stroke-linejoin="round"/>
1185	</svg>
1186	<span class="gtt__label">Back to top</span>
1187</button>
1188<div id="google_translate_element"></div>
1189</div>
1190<!-- /wrapper -->
1191
1192</div>
1193<!-- /main -->
1194<!-- footer -->
1195<footer x-data="getFooterData()">
1196	<div class="footer-separator"></div>
1197	<div class="footer-inner">
1198        <div class="top-footer d-none"></div>
1199        <div class="center-footer">
1200            <section class="log-section d-block d-lg-none order-0">
1201                <div class="logo" translate="no">EN<span>TT</span>EC</div>
1202            </section>
1203            <section class="regions d-none d-lg-block">
1204                <div class="logo" translate="no">EN<span>TT</span>EC</div>
1205                <div class="regions-list">
1206                    <a href="https://enttec.ae" class="">AE</a><a href="https://www.enttec.com.au" class="active">AU</a><a href="https://www.enttec.co.uk" class="">EU</a><a href="https://www.enttec.com" class="">US</a><a href="https://enttec.com.cn" class="">CN</a><a href="https://enttec.com.ru" class="">RU</a>                </div>
1207            </section>
1208            <section class="contact order-2 order-lg-1">
1209                <div class="address mt-0">
1210<!--                    <span class="icon"><i class="fas fa-map-marker"></i></span>-->
1211                    <span class="text" x-html='getAddress()'> 43 Indian Drive<br>Keysborough Victoria 3173<br>Australia </span>
1212                </div>
1213                                <div class="tel">
1214                    <span class="icon"><i class="fas fa-phone"></i></span>
1215                    <span class="text" x-text='contactDetails.phone'>+61 (03) 9763 5755</span>
1216                </div>
1217                                                    <div class="tel" x-show='contactDetails.hasOwnProperty("whatsapp")'>
1218                        <span class="icon"><i class="fa-brands fas fa-whatsapp"></i></span>
1219                        <span class="text" x-text='contactDetails.whatsapp'>+61466122276</span>
1220                    </div>
1221                                                                <div class="email">
1222                    <span class="icon"><i class="fas fa-envelope"></i></span>
1223                    <span class="text" x-html='getEmails()'>[email protected]<br>[email protected]</span>
1224                </div>
1225                                    <div class="abn" x-show='contactDetails.hasOwnProperty("abn")'>
1226                        <span class="icon"><i class="fas fa-building"></i></span>
1227                        <span class="text" translate="no" x-text="`ABN ${contactDetails.abn}`">ABN 31664779168</span>
1228                    </div>
1229                
1230            </section>
1231            <section class='list order-3'>
1232                <ul class="list"><li><a href="https://www.enttec.com.au/about-enttec/">About</a></li><li><a href="https://www.enttec.com.au/projects/">Projects</a></li><li><a href="https://www.enttec.com.au/products/">Products</a></li><li><a href="https://support.enttec.com/">Support</a></li><li><a href="https://www.enttec.com.au/blog/">News and Knowledge</a></li><li><a href="https://www.enttec.com.au/catalogue/">Catalogue</a></li></ul>            </section>
1233            <section class="order-1 order-lg-4">
1234                <ul class="social-network" role="navigation"><li><a href="https://www.facebook.com/enttec/" target="_blank" rel="noopener" aria-label="Facebook"><i class="fab fa-facebook-f enttec-social-icon"></i></a></li><li><a href="https://www.youtube.com/c/ENTTECofficial" target="_blank" rel="noopener" aria-label="YouTube"><i class="fab fa-youtube enttec-social-icon"></i></a></li><li><a href="https://www.instagram.com/enttecofficial/" target="_blank" rel="noopener" aria-label="Instagram"><i class="fab fa-instagram enttec-social-icon"></i></a></li><li><a href="https://www.linkedin.com/company/enttec" target="_blank" rel="noopener" aria-label="LinkedIn"><i class="fab fa-linkedin-in enttec-social-icon"></i></a></li><li><a href="https://www.pinterest.com/enttecofficial/" target="_blank" rel="noopener" aria-label="Pinterest"><i class="fab fa-pinterest-p enttec-social-icon"></i></a></li><li><a href="https://www.tiktok.com/@enttecofficial" target="_blank" rel="noopener" aria-label="TikTok"><i class="fab fa-tiktok enttec-social-icon"></i></a></li><li><a href="https://x.com/ENTTECOfficial" target="_blank" rel="noopener" aria-label="X"><i class="fab fa-x-twitter enttec-social-icon"></i></a></li></ul>                <div class="justify-content-between justify-content-lg-end qr-codes mt-3 d-flex">
1235                                            <img class="mx-2"  src="https://www.enttec.com.au/wp-content/themes/eshop/img/iso-certificate.webp" alt="Citation Certification ISO - 9001">
1236                                                        </div>
1237            </section>
1238            <section class="regions d-block d-lg-none order-4">
1239                <div class="regions-list">
1240                    <a href="https://enttec.ae" class="">AE</a><a href="https://www.enttec.com.au" class="active">AU</a><a href="https://www.enttec.co.uk" class="">EU</a><a href="https://www.enttec.com" class="">US</a><a href="https://enttec.com.cn" class="">CN</a><a href="https://enttec.com.ru" class="">RU</a>                </div>
1241            </section>
1242
1243        </div>
1244
1245		<div class="copyright-footer">
1246            <div class="copyright-text">Copyright 2026 ENTTEC Pty Ltd.</div>
1247                <ul class="links footer-links" role="navigation"><li><a href="https://www.enttec.com.au/terms-and-conditions-policy/">Terms &amp; Conditions</a></li><li><a href="https://www.enttec.com.au/store-policy/">Store Policy</a></li><li><a href="https://www.enttec.com.au/privacy-policy/">Privacy Policy / GDPR</a></li><li><a href="https://www.enttec.com.au/cookie-policy/">Cookie Policy</a></li><li><button type="button" class="footer-link-button" data-enttec-consent-open>Cookie settings</button></li></ul>        </div>
1248	</div>
1249</footer>
1250<!-- /footer -->
1251
1252<script type="speculationrules">
1253{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/eshop/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
1254</script>
1254
1255			
1255<script>window.enttecMM = {"langPrefix":"","isCN":false,"navLabels":{"products":["products","product"],"about":["about"],"support":["support"]},"cnOverlay":null,"prod":{},"productPreview":false,"ui":{"browse_eyebrow":"Browse by category","more_eyebrow":"More","menu_title":"Menu","search_placeholder":"Search products, articles, support...","login":"Login","cart":"Cart","locale":"EN","compare_template":"Compare {title} →","projects_link":"Projects","news_link":"News","about_row":"About","support_row":"Support","category_eyebrow":"Category","product_eyebrow":"Product","products_eyebrow":"Products","categories_heading":"Categories","brochure_label":"View 2026 Catalogue","brochure_href":"\/catalogue\/","card_count_template":"{n} products"},"regionOverrides":{"about":[["About ENTTEC","\/about-enttec\/"],["Authorised Distributors","\/authorised-distributors\/"],["Contact Us","\/contact-us\/"],["OEM","\/oem\/"]],"support":[["Support Centre","https:\/\/support.enttec.com\/"],["Training Videos","\/support\/lighting-control-training-videos\/"],["Pixel Protocols","\/pixel-protocols\/"],["UL Listed Products","\/support\/ul-listed-products\/"]],"catUrls":null,"newsHref":"\/blog\/"},"region":"AU","regionProductUrls":{"dmx-ethernet-distribution":{"storm10-10-universe-ethernet-to-dmx-gateway":"\/product\/dmx-distribution\/storm10-10-universe-ethernet-to-dmx-gateway\/","ethernet-to-dmx-rdm-converter":"\/product\/dmx-distribution\/ethernet-to-dmx-rdm-converter\/","ode-mk3-dmx-ethernet-converter":"\/product\/dmx-distribution\/ode-mk3-dmx-ethernet-converter\/"},"dmx-lighting-control-software":{"emu-sound-to-light-controller":"\/product\/dmx-lighting-control-software\/emu-sound-to-light-controller\/","pixel-mapping-software":"\/product\/dmx-lighting-control-software\/pixel-mapping-software\/","pixel-mapping-software-2024":"\/product\/dmx-lighting-control-software\/pixel-mapping-software-2024\/","s-play-programmer":"\/product\/dmx-lighting-control-software\/s-play-programmer\/","emu-hardware-interface":"\/product\/lighting-show-controller\/emu-hardware-interface\/"},"dmx-usb-interface":{"dmx-usb-pro-professional-1u-usb-to-dmx512-converter":"\/product\/dmx-usb-interfaces\/dmx-usb-pro-professional-1u-usb-to-dmx512-converter\/","open-dmx-usb":"\/product\/dmx-usb-interfaces\/open-dmx-usb\/","d-split-dmx-opto-splitter-isolator":"\/product\/dmx-rdm-isolated-splitter-din-rail\/d-split-dmx-opto-splitter-isolator\/","dmx-rdm-splitter":"\/product\/dmx-rdm-isolated-splitter-din-rail\/dmx-rdm-splitter\/","emu-hardware-interface":"\/product\/lighting-show-controller\/emu-hardware-interface\/"},"led-dimmers":{"cvc4-high-power-constant-voltage-led-dimmer":"\/product\/led-dimmers\/cvc4-high-power-constant-voltage-led-dimmer\/","constant-current-led-dimmer":"\/product\/led-drivers\/constant-current-led-dimmer\/"},"led-pixel-control":{"octo-mk3-32u-led-pixel-controller":"\/product\/led-pixel-control\/octo-mk3-32u-led-pixel-controller\/","octo-8-universe-edmx-to-led-pixel-controller":"\/product\/led-pixel-control\/octo-8-universe-edmx-to-led-pixel-controller\/","octo-lite-8-universe-led-pixel-controller":"\/product\/lighting-show-controller\/octo-lite-8-universe-led-pixel-controller\/","din-pixie-compact-2-universe-dmx-to-led-pixel-converter-controller":"\/product\/lighting-show-controller\/din-pixie-compact-2-universe-dmx-to-led-pixel-converter-controller\/","pixelator-mini-lighting-controller-ethernet-to-spi-pixel-converter":"\/product\/led-pixel-control\/pixelator-mini-lighting-controller-ethernet-to-spi-pixel-converter\/","pixelator-mini-mk2":"\/product\/led-pixel-control\/pixelator-mini-mk2\/","plink-injector":"\/product\/led-pixel-control\/plink-injector\/","waterproof-pixel-data-injector-2":"\/product\/led-pixel-control\/waterproof-pixel-data-injector-2\/"},"led-pixel-light":{"hi-res-smart-pxl40-metal-rgb-led-pixel-dot-strings":"\/product\/led-light-pixel-light\/hi-res-smart-pxl40-metal-rgb-led-pixel-dot-strings\/","hi-res-smart-pxl40p-rgb-led-pixel-dot-strings":"\/product\/led-light-pixel-light\/hi-res-smart-pxl40p-rgb-led-pixel-dot-strings\/","hi-res-smart-pxl60-rgb-rgbw-led-pixel-dot-strings":"\/product\/led-light-pixel-light\/hi-res-smart-pxl60-rgb-rgbw-led-pixel-dot-strings\/","hi-res-smart-pxl-100x25-rgb-rgbw-led-pixel-dot-strings":"\/product\/led-light-pixel-light\/hi-res-smart-pxl-100x25-rgb-rgbw-led-pixel-dot-strings\/"},"led-pixel-strip":{"5v-rgb-60-leds-m-pixel-strip":"\/product\/led-pixel-strip\/
12555v-rgb-60-leds-m-pixel-strip\/","5v-rgbw-60-leds-m-pixel-strip":"\/product\/led-pixel-strip\/5v-rgbw-60-leds-m-pixel-strip\/","12v-rgb-60-leds-m-pixel-strip":"\/product\/led-pixel-strip\/12v-rgb-60-leds-m-pixel-strip\/","12v-rgbw-60-leds-m-pixel-strip":"\/product\/led-pixel-strip\/12v-rgbw-60-leds-m-pixel-strip\/","12v-rgb-60-leds-m-long-range-pixel-strip":"\/product\/led-pixel-strip\/12v-rgb-60-leds-m-long-range-pixel-strip\/","12v-rgbw-60-leds-m-long-range-pixel-strip":"\/product\/led-pixel-strip\/12v-rgbw-60-leds-m-long-range-pixel-strip\/"},"led-strip-light":{"cvc4-high-power-constant-voltage-led-dimmer":"\/product\/led-dimmers\/cvc4-high-power-constant-voltage-led-dimmer\/","na1-white-led-strip-10m":"\/product\/led-strip\/na1-white-led-strip-10m\/","na2-tunable-white-led-strip-10m":"\/product\/led-strip\/na2-tunable-white-led-strip-10m\/","na3-rgbw-led-strip-10m":"\/product\/led-strip\/na3-rgbw-led-strip-10m\/","na4-rgb-led-strip-10m":"\/product\/led-strip\/na4-rgb-led-strip-10m\/"},"light-show-control":{"s-play-sp1-32-universe-smart-light-show-controller":"\/product\/lighting-show-controller\/s-play-sp1-32-universe-smart-light-show-controller\/","s-play-lite":"\/product\/lighting-show-controller\/s-play-lite\/","s-play-mini-2-universe-smart-light-show-controller":"\/product\/lighting-show-controller\/s-play-mini-2-universe-smart-light-show-controller\/","s-play-nano-1-universe-smart-light-show-controller":"\/product\/lighting-show-controller\/s-play-nano-1-universe-smart-light-show-controller\/","i-o-extender":"\/product\/lighting-show-controller\/i-o-extender\/","emu-hardware-interface":"\/product\/lighting-show-controller\/emu-hardware-interface\/"}},"regionExtras":null};</script>
1255
1256	<style id="enttec-mm-preview-style">
1257		/* Shared dropdown chrome, closer to ENTTEC nav: tight radius, sharper
1258		   shadow, theme-style uppercase tracking on eyebrows / rail labels. */
1259		#enttec-mm-preview {
1260			position: fixed;
1261			top: 72px; /* JS overwrites with the real nav bottom */
1262			left: 50%;
1263			transform: translateX(-50%);
1264			z-index: 1000010; /* above the navbar (111111) so the dropdown sits in front, not behind */
1265			background: white;
1266			border-radius: 3px;
1267			box-shadow: 0 6px 24px rgba(0,0,0,0.18), 0 0 0 1px rgba(0,0,0,0.06);
1268			overflow: hidden;
1269			font-family: "Source Sans 3", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
1270			color: #1a1a1a;
1271			/* Animation: subtle fade-in. visibility transition delayed so the
1272			   dropdown stays visible during fade-out. */
1273			opacity: 0;
1274			visibility: hidden;
1275			pointer-events: none;
1276			transition:
1277				opacity 0.16s ease-out,
1278				visibility 0s linear 0.16s;
1279		}
1280		/* Hide entirely when no variant is set (avoids empty fixed block). */
1281		#enttec-mm-preview:not(.mm-variant-products):not(.mm-variant-simple) {
1282			display: none;
1283		}
1284		/* Variant: PRODUCTS two-pane (rail 180 + pane 1fr)
1285		 *
1286		 * 720 wide, not 820, and the rail is 180, not 240. Both numbers come from
1287		 * measuring the widest thing each column has to hold rather than from
1288		 * taste:
1289		 *   rail    the catalogue link "View 2026 Catalogue" is the binding item
1290		 *           at 152px, ahead of the widest category "DMX interfaces" at
1291		 *           136px. 180 leaves 28px. (CN needs more, see the CN block.)
1292		 *   pane    the products column needs 224px for "S-PLAY Programmer" plus
1293		 *           its NEW badge on one line; it gets 244px here.
1294		 *
1295		 * Why the total matters: positionPreview() clamps the panel so it cannot
1296		 * leave the viewport, and that clamp is what pulls the panel out from
1297		 * under the PRODUCTS button. At 820 the clamp fired from 1366 down. At
1298		 * 720 it does not fire until below 1280, so 1280 / 1366 / 1440 / 1512 all
1299		 * align exactly. Widening this panel again re-breaks that alignment.
1300		 */
1301		#enttec-mm-preview.mm-variant-products {
1302			display: grid;
1303			grid-template-columns: 180px 1fr;
1304			width: 720px;
1305			max-width: calc(100vw - 40px);
1306		}
1307		/* Variant: simple link-list (ABOUT, SUPPORT), content-fit so SUPPORT
1308		   (3 short items) tightens while ABOUT (4 longer items) keeps room. */
1309		#enttec-mm-preview.mm-variant-simple {
1310			display: block;
1311			width: max-content;
1312			min-width: 200px;
1313			max-width: min(280px, calc(100vw - 40px));
1314		}
1315		#enttec-mm-preview.is-open {
1316			opacity: 1;
1317			visibility: visible;
1318			pointer-events: auto;
1319			transition-delay: 0s;
1320		}
1321		/* Rail items get their own micro-fade when the category changes. */
1322		#enttec-mm-preview .mm-title,
1323		#enttec-mm-preview .mm-desc,
1324		#enttec-mm-preview .mm-cta,
1325		#enttec-mm-preview .mm-banner,
1326		#enttec-mm-preview .mm-product-list {
1327			transition: opacity 0.12s ease-out;
1328		}
1329
1330		/* Show / hide each section by variant, variant-rooted selectors so
1331		   they outweigh the element-specific display rules (mm-pane=grid etc). */
1332		#enttec-mm-preview.mm-variant-simple   .mm-products-only,
1333		#enttec-mm-preview.mm-variant-products .mm-simple-only,
1334		#enttec-mm-preview:not(.mm-variant-products):not(.mm-variant-simple) .mm-products-only,
1335		#enttec-mm-preview:not(.mm-variant-products):not(.mm-variant-simple) .mm-simple-only {
1336			display: none !important;
1337		}
1338
1339		/* Left rail (PRODUCTS variant) */
1340		#enttec-mm-preview .mm-rail {
1341			background: #f7f7f5;
1342			padding: 12px 0;
1343			border-right: 1px solid rgba(0,0,0,0.06);
1344		}
1345		#enttec-mm-preview .mm-rail-heading,
1346		#enttec-mm-preview .mm-eyebrow {
1347			padding: 6px 20px;
1348			font-size: 10.5px;
1349			color: rgba(0,0,0,0.5);
1350			letter-spacing: 0.15rem;
1351			margin-bottom: 4px;
1352			font-weight: 500;
1353			text-transform: uppercase;
1354		}
1355		#enttec-mm-preview .mm-eyebrow { padding: 0; margin-bottom: 8px; }
1356		#enttec-mm-preview .mm-rail-item {
1357			/* 8px rows, not 10px: the rail's 10 categories are what set the whole
1358			   panel's height, so this is where vertical dead space comes from. */
1359			padding: 8px 18px;
1360			font-size: 14px;
1361			color: rgba(0,0,0,0.7);
1362			cursor: pointer;
1363			border-left: 2px solid transparent;
1364			display: flex;
1365			justify-content: space-between;
1366			align-items: center;
1367			transition: background 0.12s, color 0.12s;
1368			text-decoration: none;
1369		}
1370		#enttec-mm-preview .mm-rail-item:hover {
1371			background: rgba(14,165,223,0.06);
1372			color: rgba(0,0,0,0.95);
1373		}
1374		#enttec-mm-preview .mm-rail-item.is-active {
1375			background: white;
1376			border-left-color: #0EA5DF;
1377			color: #1a1a1a;
1378			font-weight: 500;
1379		}
1380		#enttec-mm-preview .mm-rail-item .mm-chev {
1381			opacity: 0;
1382			color: rgba(0,0,0,0.4);
1383			display: inline-flex;
1384			align-items: center;
1385			transition: opacity 0.15s ease, transform 0.15s ease, color 0.15s ease;
1386		}
1387		#enttec-mm-preview .mm-rail-item .mm-chev svg { display: block; }
1388		#enttec-mm-preview .mm-rail-item:hover .mm-chev { opacity: 0.6; transform: translateX(2px); }
1389		#enttec-mm-preview .mm-rail-item.is-active .mm-chev { opacity: 1; color: #0EA5DF; }
1390
1391		/* Brochure link, separate rail item below the categories, lighter
1392		   style with a visible top border to mark it as a different kind of
1393		   destination. */
1394		#enttec-mm-preview .mm-rail-brochure {
1395			display: block;
1396			padding: 11px 20px;
1397			margin-top: 6px;
1398			border-top: 1px solid rgba(0,0,0,0.08);
1399			font-size: 13px;
1400			color: rgba(0,0,0,0.55);
1401			text-decoration: none;
1402			transition: background 0.12s, color 0.12s;
1403		}
1404		#enttec-mm-preview .mm-rail-brochure:hover {
1405			background: rgba(0,0,0,0.025);
1406			color: #0EA5DF;
1407		}
1408
1409		/* Right pane (PRODUCTS variant) */
1410		#enttec-mm-preview .mm-pane {
1411			padding: 20px 22px;
1412			display: grid;
1413			/* Left column fixed at 230px so the products column keeps the 244px it
1414			   needs for its longest row. Was a 1.05fr / 0.95fr split, which spent
1415			   the panel's width proportionally and left the description column
1416			   wider than its 2 lines of copy needed. minmax(0, …) still keeps both
1417			   columns from reshaping per category. */
1418			grid-template-columns: minmax(0, 230px) minmax(0, 1fr);
1419			gap: 22px;
1420			/* No min-height: the rail is always taller than the pane's content, so
1421			   the grid row already sets the height and a floor only added dead
1422			   space on the short categories. */
1423			min-height: 0;
1424		}
1425		#enttec-mm-preview .mm-pane-left {
1426			padding-right: 20px;
1427			border-right: 1px solid rgba(0,0,0,0.06);
1428		}
1429		#enttec-mm-preview.has-product-preview .mm-pane-left {
1430			/* Column flex so the compare CTA can anchor to the bottom edge (see
1431			   .mm-cta). The pane's height is already fixed by the grid row, which
1432			   the taller category rail sets, so there is room below the text. */
1433			display: flex;
1434			flex-direction: column;
1435		}
1436		/* Direct-link variant (e.g. Neon Flex), only one item in this
1437		   "category", so collapse the right product column and let the
1438		   banner + description span the full pane width. */
1439		#enttec-mm-preview.mm-direct-link .mm-pane {
1440			grid-template-columns: 1fr;
1441		}
1442		#enttec-mm-preview.mm-direct-link .mm-pane-left {
1443			padding-right: 0;
1444			border-right: none;
1445		}
1446		#enttec-mm-preview.mm-direct-link .mm-pane-right {
1447			display: none;
1448		}
1449		#enttec-mm-preview.mm-direct-link .mm-banner {
1450			height: 180px;
1451			margin-bottom: 18px;
1452		}
1453		#enttec-mm-preview .mm-banner {
1454			width: 100%;
1455			/* 150px, not 110px: the pane is shorter than the rail either way, so
1456			   the banner absorbs the leftover height instead of it sitting empty
1457			   under the CTA. */
1458			height: 150px;
1459			background: #2f2f2f center / cover no-repeat;
1460			margin-bottom: 14px;
1461			overflow: hidden;
1462			border-radius: 2px;
1463		}
1464
1465		/* --- Product preview (hover/focus a product in the list) --------------
1466		 * The pane swaps from the category banner to the hovered product. Two
1467		 * things change beyond the image URL:
1468		 *
1469		 *  1. cover -> contain. Category banners are wide lifestyle shots that
1470		 *     should fill the box; product shots are the unit on a light
1471		 *     background, and `cover` crops the connectors and mounting detail
1472		 *     off the edges, which is the exact information the picture is here
1473		 *     to convey on a hardware product.
1474		 *  2. a light ground behind it, because the product shots are shot on
1475		 *     white and read as a floating cut-out on the #2f2f2f banner grey.
1476		 *     #ececec exactly: it is the ground baked into the homepage crops
1477		 *     (sampled from the files), so the square crop blends into the box
1478		 *     instead of sitting in it as a visible tile.
1479		 */
1480		#enttec-mm-preview.has-product-preview .mm-banner.is-product {
1481			background-color: #ececec;
1482			background-size: contain;
1483		}
1484
1485		/* --- The banner image crossfades, once the image has loaded ------------
1486		 *
1487		 * The swap used to be instant because two earlier fades misbehaved: a
1488		 * scale-in juddered (the box carries a `contain` background, so scaling
1489		 * it re-fits the image every frame), and an opacity crossfade "did not
1490		 * reliably start". The second one had a real cause: product images were
1491		 * never fetched ahead of time (only category banners are prefetched), so
1492		 * the fade often ran before the image existed and the picture popped in
1493		 * afterwards. That, plus the ground jumping from #2f2f2f to #f4f5f6 in
1494		 * one frame, is the flash the instant swap still had.
1495		 *
1496		 * So: a second layer (.mm-banner-next) sits on top of the banner. The JS
1497		 * waits for the image's load event, paints it on this layer, then fades
1498		 * the layer in. The layer carries its own ground colour, so the dark to
1499		 * light change is part of the same fade. Once it is opaque the banner
1500		 * underneath takes the same image and the layer drops, which is
1501		 * invisible because both show the same pixels.
1502		 *
1503		 * Opacity only. Do not reach for a transform (see the scale-in above).
1504		 */
1505		#enttec-mm-preview.has-product-preview .mm-banner { position: relative; }
1506		#enttec-mm-preview.has-product-preview .mm-banner-next {
1507			position: absolute;
1508			inset: 0;
1509			background: #2f2f2f center / cover no-repeat;
1510			opacity: 0;
1511			pointer-events: none;
1512		}
1513		#enttec-mm-preview.has-product-preview .mm-banner-next.is-product {
1514			background-color: #ececec;
1515			background-size: contain;
1516		}
1517		/* The transition lives on .is-in only, so dropping the class snaps the
1518		   layer back to 0 instead of fading it out over the new image. */
1519		#enttec-mm-preview.has-product-preview .mm-banner-next.is-in {
1520			opacity: 1;
1521			transition: opacity 200ms cubic-bezier( 0.2, 0, 0, 1 );
1522		}
1523		@media ( prefers-reduced-motion: reduce ) {
1524			#enttec-mm-preview.has-product-preview .mm-banner-next.is-in { transition: none; }
1525		}
1526
1527		/* Loading placeholder: the bare #ececec ground, with a slow, soft pulse
1528		   so it reads as "coming", not "empty". Only ever shown when an image is
1529		   still loading 150ms after the hover (see MM_PH_DELAY in the JS).
1530		   A pulse, not a shimmer sweep: this is one small box beside text the
1531		   visitor is reading, and a moving sweep pulls the eye off it.
1532		   Three cycles (about 4s) then it rests on the flat ground, which keeps
1533		   it inside WCAG 2.2.2 (auto-moving content over 5s must be pausable).
1534		   Sits under .mm-banner-next, so the arriving image fades in over it. */
1535		#enttec-mm-preview.has-product-preview .mm-banner.is-loading::before {
1536			content: '';
1537			position: absolute;
1538			inset: 0;
1539			background: #f7f7f7;
1540			opacity: 0;
1541			animation: enttecMMPlaceholderPulse 1.4s ease-in-out 3;
1542		}
1543		@keyframes enttecMMPlaceholderPulse {
1544			0%, 100% { opacity: 0; }
1545			50%      { opacity: 0.9; }
1546		}
1547		@media ( prefers-reduced-motion: reduce ) {
1548			#enttec-mm-preview.has-product-preview .mm-banner.is-loading::before { animation: none; }
1549		}
1550		/* --- Pane entrance animation -----------------------------------------
1551		 * A plain opacity crossfade on the whole pane read as robotic: every
1552		 * element appeared at the same instant, so the swap looked like a screen
1553		 * repaint rather than a thing arriving. Two changes fix that:
1554		 *
1555		 *  1. MOTION, not just opacity. The image eases down from a slight
1556		 *     over-scale and the text rises a few pixels, which gives the eye a
1557		 *     direction to follow.
1558		 *  2. A STAGGER. The eyebrow, title, blurb and CTA enter 45ms apart, so
1559		 *     the pane assembles in reading order instead of flashing in as one
1560		 *     block. This is the part that makes it feel authored.
1561		 *
1562		 * Keyframes rather than transitions, because the content is replaced
1563		 * wholesale on each swap: a transition needs a from-state that survives
1564		 * the replacement, an animation does not.
1565		 */
1566		/* The banner is NOT in this stagger. Its image swaps instantly; only the
1567		   text animates. See the note on .mm-banner above for why. */
1568		/* Text starts at 0.001 rather than 0. Visually identical to invisible, but
1569		   it keeps the element painted, and more importantly it documents the
1570		   constraint that mattered when tuning this: a preview that swaps on hover
1571		   is swept, not visited once, so anything that BLANKS for long enough to
1572		   notice reads as flicker rather than motion. That is why the text is on a
1573		   short 200ms rise with a 30ms stagger and not the image's slower curve,
1574		   and why the whole pane is settled inside ~380ms from the cursor landing.
1575		   Earlier values (300ms, 45ms stagger) tested as sluggish for exactly this
1576		   reason: the CTA was still arriving 545ms after the hover. */
1577		@keyframes enttecMMRiseIn {
1578			from { opacity: 0.001; transform: translateY( 5px ); }
1579			to   { opacity: 1; transform: none; }
1580		}
1581		#enttec-mm-preview.has-product-preview .mm-pane-left.is-entering .mm-eyebrow,
1582		#enttec-mm-preview.has-product-preview .mm-pane-left.is-entering .mm-title,
1583		#enttec-mm-preview.has-product-preview .mm-pane-left.is-entering .mm-desc {
1584			animation: enttecMMRiseIn 200ms cubic-bezier( 0.16, 0.84, 0.24, 1 ) both;
1585		}
1586		/* The CTA is NOT in the stagger any more. It is a persistent element whose
1587		   text never changes between states, so re-animating it on every hover was
1588		   pure churn; and being flush to the pane's bottom edge, a rise-from-below
1589		   would have rendered it briefly outside its own container. */
1590		#enttec-mm-preview.has-product-preview .mm-pane-left.is-entering .mm-eyebrow { animation-delay: 0ms; }
1591		#enttec-mm-preview.has-product-preview .mm-pane-left.is-entering .mm-title   { animation-delay: 30ms; }
1592		#enttec-mm-preview.has-product-preview .mm-pane-left.is-entering .mm-desc    { animation-delay: 60ms; }
1593
1594		/* Promote only while animating. Left on permanently this would hold a
1595		   compositor layer for a panel that is hidden most of the time. */
1596		#enttec-mm-preview.has-product-preview .mm-pane-left.is-entering .mm-title {
1597			will-change: transform, opacity;
1598		}
1599
1600		/* A product preview is a transient state, so it gets a quiet marker to
1601		   distinguish it from the category the rail still shows as active. */
1602		#enttec-mm-preview.has-product-preview .mm-eyebrow.is-product-eyebrow {
1603			color: #0EA5DF;
1604		}
1605
1606		@media ( prefers-reduced-motion: reduce ) {
1607			/* Content still swaps, it just arrives without motion. Setting the
1608			   animation to none (rather than a 0s duration) means `both` cannot
1609			   leave an element stuck on its from-state, which would hide it. */
1610			#enttec-mm-preview.has-product-preview .mm-pane-left.is-entering .mm-eyebrow,
1611			#enttec-mm-preview.has-product-preview .mm-pane-left.is-entering .mm-title,
1612			#enttec-mm-preview.has-product-preview .mm-pane-left.is-entering .mm-desc {
1613				animation: none;
1614				opacity: 1;
1615				transform: none;
1616			}
1617		}
1618		#enttec-mm-preview .mm-title {
1619			font-size: 19px;
1620			font-weight: 500;
1621			margin-bottom: 6px;
1622			color: #1a1a1a;
1623			letter-spacing: -0.01em;
1624		}
1625		#enttec-mm-preview .mm-desc {
1626			font-size: 14px;
1627			color: rgba(0,0,0,0.65);
1628			line-height: 1.5;
1629			margin-bottom: 14px;
1630		}
1631		#enttec-mm-preview.has-product-preview .mm-desc {
1632			/* Height is allowed to vary again, because nothing below it moves any
1633			 * more: the CTA is pinned to the bottom of the pane (see
1634			 * .mm-pane-left / .mm-cta below). Measured across all 43 products the
1635			 * text runs 0 to 126px (0 to 6 lines), and while that varied the CTA
1636			 * underneath it moved by the same amount, which is what read as the
1637			 * pane jittering on hover.
1638			 *
1639			 * The clamp stays as a pure overflow guard, not as a layout device.
1640			 * 6 lines never truncates the 140-character server-side clamp in
1641			 * English, but line wrapping depends on word length and on the
1642			 * language, so this stops a CN or RU blurb from ever growing tall
1643			 * enough to push the pinned CTA out of the pane.
1644			 */
1645			display: -webkit-box;
1646			-webkit-line-clamp: 6;
1647			line-clamp: 6;
1648			-webkit-box-orient: vertical;
1649			overflow: hidden;
1650		}
1651		#enttec-mm-preview .mm-cta {
1652			display: inline-flex;
1653			align-items: center;
1654			gap: 6px;
1655			font-size: 12px;
1656			color: #0EA5DF;
1657			text-decoration: none;
1658			font-weight: 500;
1659			text-transform: uppercase;
1660			letter-spacing: 0.08rem;
1661			transition: gap 0.15s, color 0.15s;
1662			max-width: 100%;
1663		}
1664		#enttec-mm-preview.has-product-preview .mm-cta {
1665			/* ANCHORED TO THE BOTTOM OF THE PANE.
1666			 *
1667			 * Pinning was tried once before and rejected, correctly, because back
1668			 * then this element was the PRIMARY action ("View <product>") and
1669			 * parking it far from the text it belonged to just swapped a moving
1670			 * target for a distant one.
1671			 *
1672			 * Its role is different now: it is the persistent "Compare <category>"
1673			 * route, a secondary escape hatch nobody needs to reach in a hurry.
1674			 * The primary action is clicking the product row, which is already
1675			 * under the cursor. As a secondary link, the bottom edge is the right
1676			 * place, it reads as intentional against the rail's bottom item, and
1677			 * it also means this never moves while the description above it
1678			 * changes height per product.
1679			 *
1680			 * margin-top:auto, not absolute positioning: auto consumes only the
1681			 * leftover space, so a long blurb can never collide with it.
1682			 * align-self keeps the link shrink-to-content, since a column flex
1683			 * parent would otherwise stretch it the full pane width and enlarge
1684			 * the hover and underline area.
1685			 */
1686			margin-top: auto;
1687			align-self: flex-start;
1688		}
1689
1690		/* The CTA STAYS in product mode, and it keeps saying "Compare <category>".
1691		 *
1692		 * This pane's category state is the disambiguation layer: nine of the ten
1693		 * categories have a "Compare ..." CTA, and Software's description is
1694		 * literally "Three ENTTEC software products. Here's how to know which one
1695		 * is yours." An earlier version hid the CTA while previewing a product,
1696		 * which took the route to the comparison away at the exact moment someone
1697		 * was comparing, and kept it away until they left the dropdown.
1698		 *
1699		 * So the pane is now a detail view with a permanent escape hatch: the
1700		 * image, name and blurb describe whatever is hovered, while the compare
1701		 * link underneath never moves and never changes. The product itself is
1702		 * reached by clicking the row (or the pane), not by a second link that
1703		 * would duplicate it.
1704		 *
1705		 * Side-by-side comparison is not lost either way: the tags in the product
1706		 * list ("32 universes", "Compact") stay visible throughout and are a
1707		 * better comparison device than prose, because they line up.
1708		 */
1709		#enttec-mm-preview.has-product-preview .mm-pane-left.is-product-mode {
1710			cursor: pointer;
1711		}
1712		#enttec-mm-preview.has-product-preview .mm-pane-left.is-product-mode:hover .mm-title {
1713			color: #0EA5DF;
1714		}
1715		#enttec-mm-preview.has-product-preview .mm-title {
1716			transition: color 0.15s ease;
1717		}
1718		#enttec-mm-preview .mm-cta > span:first-child { white-space: normal; }
1719		#enttec-mm-preview .mm-cta .mm-cta-arrow { flex-shrink: 0; }
1720		#enttec-mm-preview .mm-cta .mm-cta-arrow { transition: transform 0.15s ease; }
1721		#enttec-mm-preview .mm-cta:hover .mm-cta-arrow { transform: translateX(3px); }
1722		#enttec-mm-preview .mm-cta:hover { gap: 10px; color: #0a82af; text-decoration: none; }
1723
1724		#enttec-mm-preview .mm-product-list { display: flex; flex-direction: column; }
1725		#enttec-mm-preview .mm-product {
1726			padding: 7px 0;
1727			font-size: 14px;
1728			color: #1a1a1a;
1729			cursor: pointer;
1730			display: flex;
1731			justify-content: space-between;
1732			align-items: baseline;
1733			gap: 12px;
1734			transition: color 0.12s;
1735			text-decoration: none;
1736		}
1737		#enttec-mm-preview .mm-product:hover { color: #0EA5DF; }
1738		#enttec-mm-preview .mm-product .mm-product-arrow { display: none; }
1739		/* Launch badge, small brand-blue prefix on the right-side tag.
1740		   Subtler than a chip, reuses existing column structure. */
1741		.mm-badge {
1742			color: #0EA5DF;
1743			font-size: inherit;
1744			font-weight: 500;
1745			letter-spacing: 0.06rem;
1746			text-transform: uppercase;
1747			margin-right: 4px;
1748		}
1749		.mm-badge::after { content: ' · '; color: rgba(0,0,0,0.3); margin-left: 4px; }
1750		#enttec-mm-preview .mm-product .mm-tag {
1751			font-size: 11px;
1752			color: rgba(0,0,0,0.45);
1753			font-weight: 400;
1754			text-align: right;
1755			flex-shrink: 0;
1756		}
1757		#enttec-mm-preview .mm-product.is-legacy { color: rgba(0,0,0,0.4); }
1758		#enttec-mm-preview .mm-product.is-legacy .mm-tag { color: rgba(0,0,0,0.3); }
1759
1760		/* Simple variant (ABOUT, SUPPORT), clean link list, no eyebrow/title/tags. */
1761		#enttec-mm-preview .mm-simple {
1762			padding: 8px 0;
1763		}
1764		#enttec-mm-preview .mm-simple-list {
1765			display: flex;
1766			flex-direction: column;
1767		}
1768		#enttec-mm-preview .mm-simple-item {
1769			padding: 10px 22px;
1770			display: block;
1771			text-decoration: none;
1772			color: #1a1a1a;
1773			font-size: 14px;
1774			transition: background 0.1s, color 0.1s;
1775		}
1776		#enttec-mm-preview .mm-simple-item:hover {
1777			background: rgba(14,165,223,0.06);
1778			color: #0EA5DF;
1779		}
1780
1781		/* Permanently suppress the theme's Mega Menu sub-menus on tablet/desktop ,
1782		   we own these dropdowns now. Without this, hovering a top-nav item
1783		   would flash the theme's old flyout/mega-list before / alongside
1784		   our preview, depending on which JS handler fires first. */
1785		@media (min-width: 768px) {
1786			#mega-menu-wrap-header-menu .mega-sub-menu,
1787			#mega-menu-wrap-header-menu li.mega-menu-item > .mega-sub-menu,
1788			#mega-menu-wrap-header-menu li.mega-menu-item.mega-toggle-on > .mega-sub-menu {
1789				display: none !important;
1790				visibility: hidden !important;
1791				opacity: 0 !important;
1792				pointer-events: none !important;
1793			}
1794			/* Also kill any inline-style fallout from the plugin's JS. */
1795			#mega-menu-wrap-header-menu li.mega-menu-item.mega-animating > .mega-sub-menu {
1796				display: none !important;
1797			}
1798		}
1799
1800		#enttec-mm-preview-flag { display: none !important; }
1801
1802		/* ============================================================
1803		 * Tablet (768–1023px), keep horizontal nav, shrink dropdown.
1804		 * ============================================================ */
1805		@media (min-width: 768px) {
1806			#mega-menu-wrap-header-menu,
1807			#mega-menu-wrap-header-menu #mega-menu-header-menu {
1808				display: flex !important;
1809				flex-wrap: nowrap !important;
1810				visibility: visible !important;
1811			}
1812			#mega-menu-wrap-header-menu .mega-menu-toggle {
1813				display: none !important;
1814			}
1815			/* Theme hardcodes .nav_container at height:70px, let it wrap content. */
1816			.nav_container { height: max-content !important; }
1817		}
1818		@media (min-width: 768px) and (max-width: 1023px) {
1819			/* The width and rail overrides that used to live here (720px / 200px)
1820			   are gone: the base rule is now 720px / 180px, so tablet and desktop
1821			   are the same panel and a second set of numbers here would only drift
1822			   out of step with it. Only the type and banner still shrink. */
1823			#enttec-mm-preview .mm-title { font-size: 18px; }
1824			#enttec-mm-preview .mm-banner { height: 120px; }
1825		}
1826
1827		/* ============================================================
1828		 * Mobile (<768px), desktop preview disabled, overlay takes over.
1829		 * ============================================================ */
1830		@media (max-width: 767px) {
1831			#enttec-mm-preview { display: none !important; }
1832		}
1833
1834		/* ============================================================
1835		 * Mobile top bar, visible above the page on <768px so the
1836		 * hamburger has a proper home (today it floats over the hero).
1837		 * Sits on top of page content (no body padding shift, to avoid
1838		 * breaking the theme's existing layout assumptions).
1839		 * ============================================================ */
1840		#enttec-mm-topbar {
1841			display: none;
1842		}
1843		@media (max-width: 767px) {
1844			#enttec-mm-topbar {
1845				display: flex;
1846				position: fixed;
1847				top: 0;
1848				left: 0;
1849				right: 0;
1850				height: 56px;
1851				background: #2f2f2f;
1852				color: white;
1853				align-items: center;
1854				justify-content: space-between;
1855				padding: 0 8px;
1856				z-index: 999990;
1857				font-family: "Source Sans 3", -apple-system, BlinkMacSystemFont, sans-serif;
1858			}
1859			#enttec-mm-topbar .enttec-mm-tb-hamburger {
1860				width: 44px; height: 44px;
1861				background: transparent;
1862				border: 0;
1863				color: white;
1864				padding: 0;
1865				cursor: pointer;
1866				display: flex; align-items: center; justify-content: center;
1867			}
1868			#enttec-mm-topbar .enttec-mm-tb-hamburger:active { background: rgba(255,255,255,0.08); }
1869			#enttec-mm-topbar .enttec-mm-tb-hamburger svg { display: block; }
1870			#enttec-mm-topbar .enttec-mm-tb-brand {
1871				display: flex; align-items: center;
1872				flex: 1;
1873				justify-content: center;
1874			}
1875			#enttec-mm-topbar .enttec-mm-tb-brand svg { height: 16px; width: auto; display: block; }
1876			#enttec-mm-topbar .enttec-mm-tb-actions {
1877				display: flex; align-items: center; gap: 2px;
1878			}
1879			#enttec-mm-topbar .enttec-mm-tb-actions a {
1880				width: 44px; height: 44px;
1881				display: flex; align-items: center; justify-content: center;
1882				color: white;
1883				text-decoration: none;
1884				font-size: 18px;
1885			}
1886			#enttec-mm-topbar .enttec-mm-tb-actions a:active { background: rgba(255,255,255,0.08); }
1887			/* Cart count, matched to the desktop header's badge (white disc, dark number). */
1888			#enttec-mm-topbar .enttec-mm-tb-cart { position: relative; }
1889			#enttec-mm-topbar .enttec-mm-tb-count {
1890				position: absolute; top: 4px; right: 2px;
1891				min-width: 18px; height: 18px; padding: 0 5px; box-sizing: border-box;
1892				border-radius: 9px; background: #fff; color: #000;
1893				font: 600 12px/18px 'Source Sans 3', sans-serif; text-align: center;
1894				pointer-events: none;
1895			}
1896
1897			/* Hide the floating Login/Signup CTA on home that fights with the topbar */
1898			.btn.text-uppercase.btn-primary.border-round-0 { display: none !important; }
1899
1900			/* The theme's mega-menu-toggle floats fixed top-left on mobile.
1901			   Hide it since we have our own hamburger in the topbar. */
1902			.mega-menu-toggle { display: none !important; }
1903
1904			/*
1905			 * THE THEME NAVBAR IS NOT THE MOBILE HEADER. This bar is.
1906			 *
1907			 * #navbar was never hidden here, only covered: the theme's own mobile
1908			 * layout for it (position:fixed, top:0, hamburger shown, links stacked)
1909			 * lives in main-style.scss under `@media (max-width:768px){ #
1909wrapper
1910			 * header { #navbar {...} } }`, and header.php emits #navbar as a
1911			 * PRECEDING SIBLING of #wrapper, never a descendant of it. So that whole
1912			 * block has always been dead: below 768px the navbar kept its DESKTOP
1913			 * rules and simply sat behind this 56px bar, close enough to read as
1914			 * hidden.
1915			 *
1916			 * It stops being hidden the moment anything moves it down the page. A
1917			 * flow banner (the US shipping notice, the UAE holiday banner) does
1918			 * exactly that, and the desktop navbar then reappears mid-hero with its
1919			 * logo, search, locale and cart, under this bar's identical set. That is
1920			 * the two-headers bug reported on 2026-09-08, on every region at once,
1921			 * because the banner is what varies, not the CSS.
1922			 *
1923			 * Hiding it states the design instead of relying on the overlap: below
1924			 * this breakpoint the header is this bar plus #enttec-mm-mobile, and the
1925			 * navbar's transparent tail can no longer surface from behind either one.
1926			 * Safe on account pages, which emit no #navbar at all (.acct-header is
1927			 * their header). header-stack.js measures this bar for --enttec-chrome-h
1928			 * once the navbar is gone, so mobile sticky offsets stay truthful.
1929			 *
1930			 * Re-scoping the theme's dead block instead would revive a second
1931			 * hamburger and a second drawer competing with this one.
1932			 */
1933			#navbar { display: none !important; }
1934		}
1935
1936		/* ============================================================
1937		 * Mobile full-screen overlay, v2: industry-standard design.
1938		 * - Dark header w/ logo (not "MENU" text)
1939		 * - Search bar at top
1940		 * - Image-card categories
1941		 * - Hero-banner products screen
1942		 * - Bottom action bar (login / cart / locale)
1943		 * - Source Sans 3, weights 400 + 500 only
1944		 * - Brand blue #0EA5DF + dark slate #2f2f2f only
1945		 * ============================================================ */
1946		#enttec-mm-mobile {
1947			position: fixed;
1948			inset: 0;
1949			z-index: 999999;
1950			background: white;
1951			font-family: "Source Sans 3", -apple-system, BlinkMacSystemFont, sans-serif;
1952			color: #1a1a1a;
1953			display: none;
1954			flex-direction: column;
1955			overflow: hidden;
1956		}
1957		#enttec-mm-mobile.is-open { display: flex; }
1958
1959		/* Header, dark slate, logo on left, close on right */
1960		.mmm-header {
1961			display: flex;
1962			align-items: center;
1963			height: 60px;
1964			padding: 0 4px 0 16px;
1965			background: #2f2f2f;
1966			color: white;
1967			flex-shrink: 0;
1968			gap: 8px;
1969		}
1970		.mmm-header .mmm-brand {
1971			flex: 1; display: flex; align-items: center; gap: 10px; min-width: 0;
1972			text-decoration: none; color: inherit;
1973		}
1974		.mmm-header .mmm-brand svg { height: 18px; width: auto; display: block; }
1975		.mmm-header .mmm-title {
1976			font-size: 13px;
1977			letter-spacing: 0.12rem;
1978			text-transform: uppercase;
1979			font-weight: 500;
1980			color: white;
1981			border-left: 1px solid rgba(255,255,255,0.2);
1982			padding-left: 12px;
1983			white-space: nowrap;
1984			overflow: hidden;
1985			text-overflow: ellipsis;
1986		}
1987		.mmm-header button {
1988			background: transparent;
1989			border: 0;
1990			color: white;
1991			width: 44px;
1992			height: 44px;
1993			font-size: 22px;
1994			line-height: 1;
1995			cursor: pointer;
1996			padding: 0;
1997			flex-shrink: 0;
1998		}
1999		.mmm-header button:active { background: rgba(255,255,255,0.08); }
2000		.mmm-header button[hidden] { visibility: hidden; display: block; }
2001
2002		/* Search bar */
2003		.mmm-search {
2004			padding: 12px 16px;
2005			background: white;
2006			border-bottom: 1px solid rgba(0,0,0,0.08);
2007			flex-shrink: 0;
2008		}
2009		/*
2010		 * input.mmm-search-input, not .mmm-search-input, and the element part is
2011		 * load-bearing.
2012		 *
2013		 * wp-admin's forms.min.css is being enqueued on the FRONTEND, and it carries
2014		 *   @media screen and (max-width: 782px) {
2015		 *     input[type="search"], ... { padding: 3px 10px; }
2016		 *   }
2017		 * That selector scores (0,1,1) against this rule's (0,1,0), so below 782px
2018		 * core won and the 48px of left padding that holds space for the magnifier
2019		 * was discarded: the icon then sat on top of the placeholder. Measured at
2020		 * 495px, padding-left computed to 10px with the icon spanning 32-48px.
2021		 *
2022		 * Adding the element selector makes this (0,1,1) too, and it is later in the
2023		 * document, so it wins the tie. Every property moves with it rather than just
2024		 * padding, because core's rule is not the only one in that file and the next
2025		 * one to collide should not need this comment written again.
2026		 *
2027		 * The real bug is upstream: an admin stylesheet on the frontend restyles
2028		 * every input on the site under 782px. Worth removing at the source, which is
2029		 * a wider change than this file.
2030		 */
2031		input.mmm-search-input {
2032			width: 100%;
2033			height: 44px;
2034			padding: 0 48px 0 48px; /* room for icon left + submit-button right */
2035			border: 1px solid rgba(0,0,0,0.12);
2036			border-radius: 4px;
2037			background: #f7f7f5;
2038			font-family: inherit;
2039			font-size: 15px;
2040			color: #1a1a1a;
2041			outline: none;
2042			transition: border-color 0.15s, background 0.15s;
2043			/* type="search" makes Safari inject its own magnifier + clear (×)
2044			   button on top of our custom .mmm-search-icon / .mmm-search-submit,
2045			   colliding with the placeholder. Chrome strips them automatically;
2046			   Safari (iOS + macOS) does not, so reset the native chrome. */
2047			-webkit-appearance: none;
2048			appearance: none;
2049		}
2050		.mmm-search-input::-webkit-search-decoration,
2051		.mmm-search-input::-webkit-search-cancel-button,
2052		.mmm-search-input::-webkit-search-results-button,
2053		.mmm-search-input::-webkit-search-results-decoration {
2054			-webkit-appearance: none;
2055			display: none;
2056		}
2057		.mmm-search-submit {
2058			position: absolute;
2059			right: 4px;
2060			top: 50%;
2061			transform: translateY(-50%);
2062			width: 36px;
2063			height: 36px;
2064			border: 0;
2065			border-radius: 4px;
2066			background: #0EA5DF;
2067			color: white;
2068			cursor: pointer;
2069			display: flex;
2070			align-items: center;
2071			justify-content: center;
2072			padding: 0;
2073			/* Hidden by default, fades in once user has typed. */
2074			opacity: 0;
2075			pointer-events: none;
2076			transition: opacity 0.15s ease;
2077		}
2078		/* :placeholder-shown = input is empty (still showing the placeholder).
2079		   When the user types, the placeholder hides and the submit appears. */
2080		.mmm-search-input:not(:placeholder-shown) ~ .mmm-search-submit {
2081			opacity: 1;
2082			pointer-events: auto;
2083		}
2084		.mmm-search-submit:active { background: #0c8fc1; }
2085		.mmm-search-submit svg { display: block; }
2086		/* Match the input padding when the button is hidden, no longer needs
2087		   right-side space, so the placeholder text doesn't get cramped. */
2088		input.mmm-search-input:placeholder-shown { padding-right: 14px; }
2089		.mmm-search-wrap { position: relative; }
2090		.mmm-search-icon {
2091			position: absolute;
2092			left: 16px;
2093			top: 50%;
2094			transform: translateY(-50%);
2095			/* Was rgba(0,0,0,0.4), which composites to rgb(148,148,147) on this
2096			   field's #f7f7f5 and measures 2.83:1. WCAG 1.4.11 asks 3:1 of a
2097			   non-text UI component, so the magnifier was genuinely hard to see
2098			   rather than merely subtle, and it showed worst against a dense
2099			   placeholder like the CN one. #5a6672 measures 5.47:1 here and is the
2100			   same grey the header search field and the results page use for their
2101			   icons, so all three now agree. */
2102			color: #5a6672;
2103			pointer-events: none;
2104		}
2105		.mmm-search-input:focus {
2106			border-color: #0EA5DF;
2107			background: white;
2108		}
2109
2110		/*
2111		 * The live results panel, when the search rebuild is on for this host.
2112		 *
2113		 * HIDDEN UNTIL THE FIELD IS TOUCHED, and overlaid rather than inserted. The panel
2114		 * is server-rendered with the "Most asked about" chips already inside it, so left
2115		 * to itself it would sit open the moment the drawer opens and push the whole
2116		 * category list down by about 90px. Revealing it on :focus-within means the drawer
2117		 * looks exactly as it does today until someone taps the field, and the categories
2118		 * never move. :focus-within rather than :focus because the panel lives inside the
2119		 * form, so tabbing onto a result keeps the condition true.
2120		 *
2121		 * Absolute, so opening it cannot reflow anything behind it. .mmm-search is the
2122		 * positioning parent (set below). Only placement is defined here: the rows, group
2123		 * headings and chips are styled by the shared search.css, and the header's own
2124		 * positioning cannot reach this because it is scoped under
2125		 * #navbar .nav_container .search_container.
2126		 */
2127		.mmm-search { position: relative; }
2128		.mmm-search-results {
2129			/*
2130			 * width:auto is load-bearing, not tidiness. main-style.css carries an
2131			 * UNSCOPED .results_wrapper{position:absolute;top:49px;left:0;width:100%} at
2132			 * the same specificity as this rule. Width is not a property declared below,
2133			 * so that 100% survives, and left+width then over-constrain the box so the
2134			 * right offset is silently dropped. Measured at 390px before this line: the
2135			 * panel was 390px wide starting at x=16, so 16px sat past the viewport and
2136			 * #enttec-mm-mobile{overflow:hidden} clipped the right border and corner off.
2137			 */
2138			/*
2139			 * ANCHORED TO THE FIELD, NOT THE FORM. The panel used to be a sibling of
2140			 * .mmm-search-wrap with top:100% against .mmm-search, and .mmm-search has
2141			 * padding:12px 16px, so "100%" was the bottom of the PADDING box: the panel
2142			 * landed 12px below the field with clear air between them. Combined with a
2143			 * full border on all four sides it read as a separate box floating behind
2144			 * the search bar rather than a dropdown hanging off it, which is exactly how
2145			 * it was reported. It now lives inside .mmm-search-wrap, which is the field's
2146			 * own box, so top:100% is the field's bottom edge and left/right:0 track the
2147			 * field's width instead of repeating its inset.
2148			 */
2149			width: auto;
2150			position: absolute;
2151			top: 100%;
2152			left: 0;
2153			right: 0;
2154			/*
2155			 * The last two pixels of the join. -1px pulls the panel up so its border
2156			 * shares the field's bottom border instead of drawing a second line, and no
2157			 * top border means the two shapes read as one. Same treatment the header
2158			 * panel already gets in search.css, for the same reason.
2159			 */
2160			margin-top: -1px;
2161			border-top: 0;
2162			z-index: 5;
2163			max-height: min(60vh, 420px);
2164			overflow: hidden auto;
2165			overscroll-behavior: contain;
2166			background: #fff;
2167			border: 1px solid #c9d3dc;
2168			/* 4px, matching input.mmm-search-input, so the joined shape has one radius. */
2169			border-radius: 0 0 4px 4px;
2170			box-shadow: 0 14px 32px rgba(20, 24, 29, .18);
2171
2172			/*
2173			 * Fades in, matching the header panel's own opacity/visibility .16s rather
2174			 * than appearing hard. visibility, not display, for two reasons: display
2175			 * cannot be transitioned, and an inline display from any other script cannot
2176			 * strand a panel that is hidden this way.
2177			 */
2178			opacity: 0;
2179			visibility: hidden;
2180			transition: opacity .16s ease, visibility .16s ease;
2181		}
2182		/*
2183		 * While the panel is open the field is the top half of one shape, so its
2184		 * bottom corners square off to meet it. Mirrors what the header field does.
2185		 */
2186		.mmm-search:focus-within:not(.is-dismissed) input.mmm-search-input {
2187			border-bottom-left-radius: 0;
2188			border-bottom-right-radius: 0;
2189		}
2190
2191		.mmm-search:focus-within .mmm-search-results {
2192			opacity: 1;
2193			visibility: visible;
2194		}
2195		/*
2196		 * Escape sets this so the panel can be dismissed while the field keeps focus.
2197		 * Same specificity as the reveal rule above and declared after it, so it wins.
2198		 */
2199		.mmm-search.is-dismissed .mmm-search-results {
2200			opacity: 0;
2201			visibility: hidden;
2202		}
2203
2204		@media (prefers-reduced-motion: reduce) {
2205			.mmm-search-results { transition: none; }
2206		}
2207
2208		/* Panels */
2209		.mmm-panels {
2210			flex: 1;
2211			position: relative;
2212			overflow: hidden;
2213			background: #f7f7f5;
2214		}
2215		.mmm-panel {
2216			position: absolute;
2217			inset: 0;
2218			overflow-y: auto;
2219			-webkit-overflow-scrolling: touch;
2220			overscroll-behavior: contain;
2221			background: #f7f7f5;
2222			transform: translateX(100%);
2223			transition: transform 0.24s cubic-bezier(0.4, 0, 0.2, 1);
2224		}
2225		.mmm-panel.is-current { transform: translateX(0); }
2226		.mmm-panel.is-prev { transform: translateX(-25%); opacity: 0.5; }
2227		.mmm-panel[data-panel="root"] { transform: translateX(0); }
2228		.mmm-panel[data-panel="root"].is-prev { transform: translateX(-25%); }
2229
2230		/* Root panel, large rows with subtle bottom borders */
2231		.mmm-row {
2232			display: flex;
2233			align-items: center;
2234			justify-content: space-between;
2235			gap: 12px;
2236			padding: 18px 16px;
2237			background: white;
2238			border-bottom: 1px solid rgba(0,0,0,0.06);
2239			font-size: 17px;
2240			font-weight: 500;
2241			color: #1a1a1a;
2242			text-decoration: none;
2243			width: 100%;
2244			text-align: left;
2245			border-left: 0;
2246			border-right: 0;
2247			border-top: 0;
2248			cursor: pointer;
2249			min-height: 60px;
2250		}
2251		.mmm-row:active { background: rgba(14,165,223,0.06); }
2252		.mmm-row .mmm-row-chev {
2253			color: rgba(0,0,0,0.35);
2254			font-size: 20px;
2255			flex-shrink: 0;
2256		}
2257		.mmm-row.is-expanded { background: #f7f7f5; color: #1a1a1a; }
2258		.mmm-row.is-expanded .mmm-row-chev { transform: rotate(90deg); color: #0EA5DF; }
2259
2260		.mmm-sub {
2261			background: #fbfbfa;
2262			border-bottom: 1px solid rgba(0,0,0,0.06);
2263			display: none;
2264		}
2265		.mmm-row.is-expanded + .mmm-sub { display: block; }
2266		.mmm-sub a {
2267			display: block;
2268			padding: 14px 16px 14px 30px;
2269			font-size: 16px;
2270			color: rgba(0,0,0,0.78);
2271			text-decoration: none;
2272			border-bottom: 1px solid rgba(0,0,0,0.04);
2273			background: transparent;
2274		}
2275		.mmm-sub a:last-child { border-bottom: 0; }
2276		.mmm-sub a:active { background: rgba(14,165,223,0.06); color: #0EA5DF; }
2277
2278		/* Section eyebrow */
2279		.mmm-section-eyebrow {
2280			padding: 18px 16px 10px;
2281			font-size: 11px;
2282			letter-spacing: 0.15rem;
2283			text-transform: uppercase;
2284			font-weight: 500;
2285			color: rgba(0,0,0,0.5);
2286		}
2287
2288		/* Category block, image card + inline expandable product list */
2289		.mmm-cat-grid { padding: 0 12px 6px; display: grid; grid-template-columns: 1fr; gap: 10px; }
2290		.mmm-cat-block { border-radius: 4px; overflow: hidden; }
2291
2292		.mmm-cat-expand {
2293			display: none;
2294			background: white;
2295			border: 1px solid rgba(0,0,0,0.08);
2296			border-top: 0;
2297			border-radius: 0 0 4px 4px;
2298		}
2299		.mmm-cat-card.is-expanded { border-radius: 4px 4px 0 0; }
2300		.mmm-cat-card.is-expanded + .mmm-cat-expand { display: block; }
2301
2302		.mmm-cat-expand .mmm-product {
2303			display: flex;
2304			align-items: center;
2305			justify-content: space-between;
2306			padding: 14px 16px;
2307			border-bottom: 1px solid rgba(0,0,0,0.06);
2308			text-decoration: none;
2309			color: #1a1a1a;
2310			min-height: 56px;
2311		}
2312		.mmm-cat-expand .mmm-product-name { font-size: 15px; font-weight: 500; }
2313		.mmm-cat-expand .mmm-product .mmm-tag {
2314			font-size: 12px;
2315			color: rgba(0,0,0,0.5);
2316			text-align: right;
2317			flex-shrink: 0;
2318			margin-left: 12px;
2319		}
2320		.mmm-cat-expand .mmm-product.is-legacy .mmm-product-name { color: rgba(0,0,0,0.4); }
2321		.mmm-cat-expand .mmm-product:active { background: rgba(14,165,223,0.06); }
2322
2323		.mmm-cat-view-all {
2324			display: flex;
2325			align-items: center;
2326			justify-content: center;
2327			gap: 8px;
2328			margin: 12px 16px 16px;
2329			padding: 14px 18px;
2330			background: #0EA5DF;
2331			color: white;
2332			text-decoration: none;
2333			font-size: 13px;
2334			font-weight: 500;
2335			text-transform: uppercase;
2336			letter-spacing: 0.12rem;
2337			border-radius: 4px;
2338			transition: background 0.15s ease;
2339			white-space: nowrap;
2340		}
2341		.mmm-cat-view-all:hover,
2342		.mmm-cat-view-all:active { background: #0c8fc1; color: white; text-decoration: none; }
2343
2344		/* Brochure / catalogue row, between the category cards and the More
2345		   section. Borrow .mmm-row styling but make it visually distinct so
2346		   users see it's a separate kind of destination. */
2347		.mmm-row-brochure {
2348			margin-top: 8px;
2349			border-top: 1px solid rgba(0,0,0,0.08);
2350		}
2351		.mmm-cat-card {
2352			position: relative;
2353			display: block;
2354			width: 100%;
2355			height: 96px;
2356			border: 0;
2357			border-radius: 4px;
2358			overflow: hidden;
2359			background: #2f2f2f center / cover no-repeat;
2360			cursor: pointer;
2361			padding: 0;
2362			text-align: left;
2363			font-family: inherit;
2364		}
2365		.mmm-cat-card:focus,
2366		.mmm-cat-card:focus-visible {
2367			outline: none;
2368			box-shadow: none;
2369		}
2370		.mmm-cat-card:active { transform: scale(0.99); }
2371		.mmm-cat-card::after {
2372			content: '';
2373			position: absolute;
2374			inset: 0;
2375			background: linear-gradient(90deg, rgba(0,0,0,0.65) 0%, rgba(0,0,0,0.35) 50%, rgba(0,0,0,0.1) 100%);
2376		}
2377		.mmm-cat-card-label {
2378			position: absolute;
2379			left: 18px;
2380			bottom: 14px;
2381			z-index: 1;
2382			color: white;
2383			font-size: 19px;
2384			font-weight: 500;
2385			letter-spacing: -0.01em;
2386		}
2387		.mmm-cat-card-arrow {
2388			position: absolute;
2389			right: 12px;
2390			bottom: 12px;
2391			z-index: 1;
2392			height: 28px;
2393			padding: 0 12px;
2394			border-radius: 14px;
2395			/* Opaque dark chip, NOT translucent white: white text on a 20%-white
2396			   glass pill is unreadable over bright category photos (the card's
2397			   left-to-right scrim has faded to ~0.1 by the time it reaches this
2398			   right-pinned pill). Dark backing makes contrast photo-independent. */
2399			background: rgba(0,0,0,0.55);
2400			color: white;
2401			display: inline-flex;
2402			align-items: center;
2403			gap: 6px;
2404			font-family: inherit;
2405			font-size: 11px;
2406			font-weight: 500;
2407			letter-spacing: 0.1rem;
2408			text-transform: uppercase;
2409			backdrop-filter: blur(8px);
2410			border: 1px solid rgba(255,255,255,0.18);
2411			transition: background 0.15s ease, border-color 0.15s ease;
2412		}
2413		.mmm-cat-card-arrow .mmm-arrow-glyph {
2414			display: inline-flex;
2415			align-items: center;
2416			transition: transform 0.2s ease;
2417		}
2418		.mmm-cat-card.is-expanded .mmm-cat-card-arrow {
2419			/* Solid, darker brand blue (NOT the translucent #0EA5DF/0.85). White
2420			   text on brand blue is only ~2.6:1, and at 0.85 opacity the photo
2421			   bled through and made it worse. #0c79a8 is opaque (photo-independent)
2422			   and clears WCAG AA for 11px text at ~4.85:1, while still reading as
2423			   the active/expanded blue state. */
2424			background: #0c79a8;
2425			border-color: transparent;
2426		}
2427		.mmm-cat-card.is-expanded .mmm-cat-card-arrow .mmm-arrow-glyph {
2428			transform: rotate(180deg);
2429		}
2430
2431		/* Direct-link mobile card (e.g. Neon Flex), uses the banner image
2432		   like a normal category card, but taps navigate straight to the
2433		   product page instead of expanding an accordion. The → arrow glyph
2434		   replaces the "{n} products / ▾" affordance. */
2435		.mmm-cat-card.mmm-cat-direct {
2436			text-decoration: none;
2437		}
2438		.mmm-cat-card.mmm-cat-direct .mmm-cat-card-arrow .mmm-arrow-glyph {
2439			font-size: 14px;
2440			line-height: 1;
2441			transition: transform 0.2s ease;
2442		}
2443		.mmm-cat-card.mmm-cat-direct:active .mmm-cat-card-arrow .mmm-arrow-glyph {
2444			transform: translateX(3px);
2445		}
2446		@media (prefers-reduced-motion: reduce) {
2447			.mmm-cat-card.mmm-cat-direct .mmm-cat-card-arrow .mmm-arrow-glyph { transition: none; }
2448			.mmm-cat-card.mmm-cat-direct:active .mmm-cat-card-arrow .mmm-arrow-glyph { transform: none; }
2449		}
2450
2451		/* Product list panel, full-bleed hero + products grid */
2452		.mmm-hero {
2453			position: relative;
2454			width: 100%;
2455			height: 180px;
2456			background: #2f2f2f center / cover no-repeat;
2457			display: flex;
2458			flex-direction: column;
2459			justify-content: flex-end;
2460			padding: 20px;
2461			color: white;
2462		}
2463		.mmm-hero::after {
2464			content: '';
2465			position: absolute;
2466			inset: 0;
2467			background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.55) 70%, rgba(0,0,0,0.75) 100%);
2468		}
2469		.mmm-hero-eyebrow {
2470			position: relative;
2471			z-index: 1;
2472			font-size: 11px;
2473			letter-spacing: 0.15rem;
2474			text-transform: uppercase;
2475			font-weight: 500;
2476			color: #0EA5DF;
2477			margin-bottom: 6px;
2478		}
2479		.mmm-hero-title {
2480			position: relative;
2481			z-index: 1;
2482			font-size: 24px;
2483			font-weight: 500;
2484			margin: 0 0 6px;
2485			letter-spacing: -0.01em;
2486		}
2487		.mmm-hero-desc {
2488			position: relative;
2489			z-index: 1;
2490			font-size: 14px;
2491			line-height: 1.45;
2492			color: rgba(255,255,255,0.85);
2493			max-width: 92%;
2494		}
2495		.mmm-products {
2496			background: white;
2497		}
2498		.mmm-product {
2499			display: flex;
2500			align-items: center;
2501			justify-content: space-between;
2502			padding: 18px 18px;
2503			border-bottom: 1px solid rgba(0,0,0,0.06);
2504			text-decoration: none;
2505			color: #1a1a1a;
2506			min-height: 64px;
2507		}
2508		.mmm-product:last-child { border-bottom: 0; }
2509		.mmm-product:active { background: rgba(14,165,223,0.06); }
2510		.mmm-product-name {
2511			font-size: 16px;
2512			font-weight: 500;
2513		}
2514		.mmm-product .mmm-tag {
2515			font-size: 12px;
2516			color: rgba(0,0,0,0.5);
2517			text-align: right;
2518			flex-shrink: 0;
2519			margin-left: 12px;
2520			letter-spacing: 0.02em;
2521		}
2522		.mmm-product.is-legacy .mmm-product-name { color: rgba(0,0,0,0.4); }
2523
2524		.mmm-cat-cta {
2525			padding: 14px 16px;
2526			text-align: center;
2527			background: #f7f7f5;
2528			border-top: 1px solid rgba(0,0,0,0.06);
2529		}
2530		.mmm-cat-cta a {
2531			display: inline-flex;
2532			align-items: center;
2533			gap: 6px;
2534			font-size: 13px;
2535			font-weight: 500;
2536			color: #0EA5DF;
2537			text-transform: uppercase;
2538			letter-spacing: 0.1rem;
2539			text-decoration: none;
2540		}
2541
2542		/* Bottom action bar, login / cart / locale */
2543		.mmm-actions {
2544			display: grid;
2545			grid-template-columns: 1fr 1fr 1fr;
2546			background: white;
2547			border-top: 1px solid rgba(0,0,0,0.08);
2548			flex-shrink: 0;
2549		}
2550		.mmm-actions a {
2551			display: flex;
2552			flex-direction: column;
2553			align-items: center;
2554			justify-content: center;
2555			gap: 4px;
2556			padding: 10px 8px;
2557			text-decoration: none;
2558			color: rgba(0,0,0,0.7);
2559			font-size: 11px;
2560			letter-spacing: 0.08rem;
2561			text-transform: uppercase;
2562			font-weight: 500;
2563			min-height: 60px;
2564		}
2565		.mmm-actions a:active { background: rgba(14,165,223,0.06); color: #0EA5DF; }
2566		.mmm-actions .mmm-action-icon {
2567			display: flex;
2568			align-items: center;
2569			justify-content: center;
2570			line-height: 0;
2571		}
2572		.mmm-actions .mmm-action-icon svg { display: block; }
2573
2574		/* Item entry animation, staggered fade-in when the panel becomes current. */
2575		.mmm-panel.is-current .mmm-row,
2576		.mmm-panel.is-current .mmm-cat-card,
2577		.mmm-panel.is-current .mmm-product {
2578			animation: mmm-item-fade-in 0.32s ease-out both;
2579		}
2580		.mmm-panel.is-current .mmm-row:nth-child(1),
2581		.mmm-panel.is-current .mmm-cat-card:nth-child(1),
2582		.mmm-panel.is-current .mmm-product:nth-child(1) { animation-delay: 0.04s; }
2583		.mmm-panel.is-current .mmm-row:nth-child(2),
2584		.mmm-panel.is-current .mmm-cat-card:nth-child(2),
2585		.mmm-panel.is-current .mmm-product:nth-child(2) { animation-delay: 0.08s; }
2586		.mmm-panel.is-current .mmm-row:nth-child(3),
2587		.mmm-panel.is-current .mmm-cat-card:nth-child(3),
2588		.mmm-panel.is-current .mmm-product:nth-child(3) { animation-delay: 0.12s; }
2589		.mmm-panel.is-current .mmm-row:nth-child(4),
2590		.mmm-panel.is-current .mmm-cat-card:nth-child(4),
2591		.mmm-panel.is-current .mmm-product:nth-child(4) { animation-delay: 0.16s; }
2592		.mmm-panel.is-current .mmm-row:nth-child(5),
2593		.mmm-panel.is-current .mmm-cat-card:nth-child(5),
2594		.mmm-panel.is-current .mmm-product:nth-child(5) { animation-delay: 0.2s; }
2595		@keyframes mmm-item-fade-in {
2596			from { opacity: 0; transform: translateY(8px); }
2597			to   { opacity: 1; transform: translateY(0); }
2598		}
2599	</style>
2600
2601	<div id="enttec-mm-preview" hidden aria-hidden="true" role="menu">
2602		<!-- PRODUCTS variant: rail + pane -->
2603		<div class="mm-products-only mm-rail" id="enttec-mm-rail"></div>
2604		<div class="mm-products-only mm-pane">
2605			<div class="mm-pane-left">
2606				<div class="mm-banner"></div>
2607				<div class="mm-eyebrow" id="enttec-mm-eyebrow">Category</div>
2608				<div class="mm-title" id="enttec-mm-title"></div>
2609				<div class="mm-desc" id="enttec-mm-desc"></div>
2610				<a href="#" class="mm-cta" id="enttec-mm-cta"></a>
2611			</div>
2612			<div class="mm-pane-right">
2613				<div class="mm-eyebrow">Products</div>
2614				<div class="mm-product-list" id="enttec-mm-products"></div>
2615			</div>
2616		</div>
2617
2618		<!-- SIMPLE variant: clean link list (no eyebrow / title / tags). -->
2619		<div class="mm-simple-only mm-simple">
2620			<div class="mm-simple-list" id="enttec-mm-simple-list"></div>
2621		</div>
2622	</div>
2623
2624		<!-- Mobile top bar (<768px only): replaces the floating hamburger with a proper bar -->
2625	<div id="enttec-mm-topbar">
2626		<button class="enttec-mm-tb-hamburger" aria-label="Open menu" type="button">
2627			<svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="18" x2="21" y2="18"/></svg>
2628		</button>
2629		<a class="enttec-mm-tb-brand" href="/" aria-label="ENTTEC home">
2630			<svg viewBox="0 0 537 87" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
2631				<path d="M48.0019 85.84H0.671875V2.25H48.0019V13.8H14.3419V36.55H45.8419V48H14.3419V74.23H48.0019V85.84Z" fill="white"/>
2632				<path d="M160.003 85.84H143.273L102.163 19.23H101.703L101.993 22.95C102.526 30.0367 102.793 36.5167 102.793 42.39V85.84H90.3828V2.25H107.003L148.003 68.52H148.343C148.269 67.64 148.116 64.4467 147.883 58.94C147.649 53.4333 147.523 49.12 147.503 46V2.25H160.003V85.84Z" fill="white"/>
2633				<path d="M435.002 85.84H387.672V2.25H435.002V13.8H401.332V36.55H432.832V48H401.332V74.23H435.002V85.84Z" fill="white"/>
2634				<path d="M512.94 12.7697C505.087 12.7697 498.913 15.553 494.42 21.1197C489.927 26.6863 487.677 34.353 487.67 44.1197C487.67 54.373 489.833 62.1297 494.16 67.3897C498.487 72.6497 504.747 75.2797 512.94 75.2797C516.398 75.288 519.847 74.9327 523.23 74.2197C526.563 73.513 530.013 72.6063 533.58 71.4997V83.2197C526.433 85.7991 518.877 87.0596 511.28 86.9397C499.047 86.9397 489.65 83.233 483.09 75.8197C476.53 68.4063 473.25 57.7997 473.25 43.9997C473.25 35.333 474.84 27.7297 478.02 21.1897C480.984 14.8972 485.803 9.66271 491.83 6.18966C497.83 2.72299 504.9 0.989657 513.04 0.989657C521.24 0.912144 529.346 2.7
26345098 536.71 6.35966L531.8 17.7997C528.897 16.4325 525.907 15.2566 522.85 14.2797C519.646 13.263 516.302 12.7535 512.94 12.7697Z" fill="white"/>
2635				<path d="M235.297 85.84H221.637V14H197.047V2.25H259.887V14H235.297V85.84Z" fill="#15A6DF"/>
2636				<path d="M325.922 85.84H312.262V14H287.672V2.25H350.512V14H325.922V85.84Z" fill="#15A6DF"/>
2637			</svg>
2638		</a>
2639		<div class="enttec-mm-tb-actions">
2640			<a href="/cart/" class="enttec-mm-tb-cart" aria-label="Cart">
2641				<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><circle cx="9" cy="21" r="1"/><circle cx="20" cy="21" r="1"/><path d="M1 1h4l2.7 13.4a2 2 0 0 0 2 1.6h9.7a2 2 0 0 0 2-1.6L23 6H6"/></svg>
2642						</a>
2643			<a href="/my-account/" aria-label="Account">
2644				<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"/><circle cx="12" cy="7" r="4"/></svg>
2645			</a>
2646		</div>
2647	</div>
2648	
2649	<!-- Mobile full-screen overlay (<768px only), v2 industry-standard design -->
2650	<div id="enttec-mm-mobile" hidden aria-hidden="true">
2651		<header class="mmm-header">
2652			<button class="mmm-back" hidden aria-label="Back" type="button">←</button>
2653			<a class="mmm-brand" href="/" aria-label="ENTTEC home">
2654				<svg viewBox="0 0 537 87" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
2655					<path d="M48.0019 85.84H0.671875V2.25H48.0019V13.8H14.3419V36.55H45.8419V48H14.3419V74.23H48.0019V85.84Z" fill="white"/>
2656					<path d="M160.003 85.84H143.273L102.163 19.23H101.703L101.993 22.95C102.526 30.0367 102.793 36.5167 102.793 42.39V85.84H90.3828V2.25H107.003L148.003 68.52H148.343C148.269 67.64 148.116 64.4467 147.883 58.94C147.649 53.4333 147.523 49.12 147.503 46V2.25H160.003V85.84Z" fill="white"/>
2657					<path d="M435.002 85.84H387.672V2.25H435.002V13.8H401.332V36.55H432.832V48H401.332V74.23H435.002V85.84Z" fill="white"/>
2658					<path d="M512.94 12.7697C505.087 12.7697 498.913 15.553 494.42 21.1197C489.927 26.6863 487.677 34.353 487.67 44.1197C487.67 54.373 489.833 62.1297 494.16 67.3897C498.487 72.6497 504.747 75.2797 512.94 75.2797C516.398 75.288 519.847 74.9327 523.23 74.2197C526.563 73.513 530.013 72.6063 533.58 71.4997V83.2197C526.433 85.7991 518.877 87.0596 511.28 86.9397C499.047 86.9397 489.65 83.233 483.09 75.8197C476.53 68.4063 473.25 57.7997 473.25 43.9997C473.25 35.333 474.84 27.7297 478.02 21.1897C480.984 14.8972 485.803 9.66271 491.83 6.18966C497.83 2.72299 504.9 0.989657 513.04 0.989657C521.24 0.912144 529.346 2.75098 536.71 6.35966L531.8 17.7997C528.897 16.4325 525.907 15.2566 522.85 14.2797C519.646 13.263 516.302 12.7535 512.94 12.7697Z" fill="white"/>
2659					<path d="M235.297 85.84H221.637V14H197.047V2.25H259.887V14H235.297V85.84Z" fill="#15A6DF"/>
2660					<path d="M325.922 85.84H312.262V14H287.672V2.25H350.512V14H325.922V85.84Z" fill="#15A6DF"/>
2661				</svg>
2662				<span class="mmm-title" hidden></span>
2663			</a>
2664			<button class="mmm-close" aria-label="Close menu" type="button">×</button>
2665		</header>
2666				<form class="mmm-search" action="/" method="get" role="search">
2667			<div class="mmm-search-wrap">
2668				<svg class="mmm-search-icon" width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2669					<circle cx="11" cy="11" r="7" stroke="currentColor" stroke-width="2"/>
2670					<path d="M21 21l-4.5-4.5" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
2671				</svg>
2672				<input type="search" name="s" class="mmm-search-input" placeholder="Search products, articles, support..." aria-label="Search products, articles, support..." enterkeyhint="search" required />
2673				<button type="submit" class="mmm-search-submit" aria-label="Search">
2674					<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg>
2675				</button>
2676							</div>
2677		</form>
2678		<div class="mmm-panels">
2679			<div class="mmm-panel is-current" data-panel="root" data-lenis-prevent></div>
2680		</div>
2681		<nav class="mmm-actions" aria-label="Quick actions">
2682			<a href="/my-account/">
2683				<span class="mmm-action-icon">
2684					<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"/><circle cx="12" cy="7" r="4"/></svg>
2685				</span>
2686				<span>Login</span>
2687			</a>
2688			<a href="/cart/">
2689				<span class="mmm-action-icon">
2690					<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><circle cx="9" cy="21" r="1"/><circle cx="20" cy="21" r="1"/><path d="M1 1h4l2.7 13.4a2 2 0 0 0 2 1.6h9.7a2 2 0 0 0 2-1.6L23 6H6"/></svg>
2691				</span>
2692				<span>
2692Cart</span>
2693			</a>
2694			<a href="#" class="mmm-locale-toggle">
2695				<span class="mmm-action-icon">
2696					<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><line x1="2" y1="12" x2="22" y2="12"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg>
2697				</span>
2698				<span>EN</span>
2699			</a>
2700		</nav>
2701	</div>
2702
2703	<div id="enttec-mm-preview-flag" hidden></div>
2704
2705	
2705<script id="enttec-mm-preview-script">
2706	(function () {
2707
2708		// --- Preview pin -------------------------------------------------------
2709		// While iterating on the design, set this to 'products' / 'about' /
2710		// 'support' to keep that variant pinned open across navigation.
2711		// Currently null = normal hover-only behaviour.
2712		var PIN_VARIANT = null;
2713
2714		// --- Content config ----------------------------------------------------
2715		// Production version of this would live in PHP files under a mu-plugin
2716		// (Approach C). Inlined here for preview only.
2717
2718		// All product hrefs follow the canonical /product/<category-slug>/<product-slug>/ pattern.
2719		// `banner` URLs come from each category page itself:
2720		//   - software (only one migrated to .sr-wrap): .sr-hero CSS background-image
2721		//   - all others: first Kadence row block's background-image after <article>
2722		// Banner images are served first-party from the ENTTEC CDN
2723		// (cdn.enttec.com/website/megamenu/), not hotlinked from any region site.
2724		var catData = {
2725			'dmx-lighting-control-software': {
2726				title: 'Software',
2727				banner: 'https://cdn.enttec.com/wp-content/uploads/2025/01/28102338/1903_x_1040_category_banner_software_4-768x420.jpg',
2728				desc: "Three ENTTEC software products. Here's how to know which one is yours.",
2729				cta: 'Compare all software',
2730				href: '/products/dmx-lighting-control-software/',
2731				products: [
2732					['EMU', 'DJs & musicians', '/product/dmx-lighting-control-software/emu-sound-to-light-controller/', false],
2733					['ELM', 'Pixel mapping', '/product/dmx-lighting-control-software/pixel-mapping-software/', false, 'NEW'],
2734					['S-PLAY Programmer', 'Free, offline', '/product/dmx-lighting-control-software/s-play-programmer/', false, 'NEW'],
2735					['EMU Hardware', 'DJs & musicians', '/product/dmx-lighting-control-software/emu-hardware-interface/', false],
2736										['ELM HUB', 'Runs ELM, 3RU', '/product/dmx-lighting-control-software/elm-hub/', false, 'NEW'],
2737					['ELM 2024', 'Legacy, promo only', '/product/dmx-lighting-control-software/pixel-mapping-software-2024/', true]
2738				]
2739			},
2740			'light-show-control': {
2741				title: 'Show control',
2742				banner: 'https://cdn.enttec.com/website/megamenu/banner_showcontrol_3-768x420.jpg',
2743				desc: 'For precise show playback or smart home automation: the tools to create an astonishing, immersive experience.',
2744				cta: 'Compare show controllers',
2745				href: '/products/light-show-control/',
2746				products: [
2747					['S-PLAY SP1-1', '32 universes', '/product/light-show-control/s-play-sp1-32-universe-smart-light-show-controller/', false],
2748					['S-PLAY LITE', '16 universes', '/product/light-show-control/s-play-lite/', false],
2749					['S-PLAY MINI', '4 universes', '/product/light-show-control/s-play-mini-2-universe-smart-light-show-controller/', false],
2750					['S-PLAY NANO', '1 universe', '/product/light-show-control/s-play-nano-1-universe-smart-light-show-controller/', false],
2751					['I/O Extender', 'S-PLAY SP1-1 expansion', '/product/light-show-control/i-o-extender/', false],
2752										['ELM HUB', 'Runs ELM, 3RU', '/product/dmx-lighting-control-software/elm-hub/', false, 'NEW']
2753				]
2754			},
2755			'led-pixel-control': {
2756				title: 'Pixel control',
2757				banner: 'https://cdn.enttec.com/website/megamenu/banner_showcontrol_2-768x420.jpg',
2758				desc: 'Give unique commands to every single LED chip: complete control of your artistic vision.',
2759				cta: 'Compare pixel controllers',
2760				href: '/products/led-pixel-control/',
2761				products: [
2762					['OCTO MK3', '32 universes', '/product/led-pixel-control/octo-mk3-32u-led-pixel-controller/', false],
2763					['OCTO MK2', '8 universes', '/product/led-pixel-control/octo-8-universe-edmx-to-led-pixel-controller/', false],
2764					['OCTO LITE', 'Compact', '/product/led-pixel-control/octo-lite-8-universe-led-pixel-controller/', false, 'NEW'],
2765					['DIN PIXIE', '2 universes', '/product/led-pixel-control/din-pixie-compact-2-universe-dmx-to-led-pixel-converter-controller/', false],
2766					['Pixelator Mini Mk2', '128 universes', '/product/led-pixel-control/pixelator-mini-mk2/', false],
2767					['Pixelator Mini', '32 universes', '/product/led-pixel-control/pixelator-mini-lighting-controller-ethernet-to-spi-pixel-converter/', false],
2768					['PLink Injector', 'Range extender', '/product/led-pixel-control/plink-injector/', false, 'UPDATED'],
2769					['IP PLink Injector', 'Waterproof', '/product/led-pixel-control/waterproof-pixel-data-injector-2/', false]
2770				]
2771			},
2772			'led-pixel-light': {
2773				title: 'Pixel dots',
2774				banner: 'https://cdn.enttec.com/website/megamenu/banner_dots5-768x420.jpg',
2775				desc: "Hi-res SMART PXL pixel dot lights designed to withstand the harshest environments, indoors or out.",
2776				cta: 'Compare pixel dots',
2777				href: '/products/led-pixel-light/',
2778				products: [
2779					['Smart PXL 40 Metal', 'Anodised aluminium', '/product/led-pixel-light/hi-res-smart-pxl40-metal-rgb-led-pixel-dot-strings/', false],
2780					['Smart PXL 40', '42 mm node', '/product/led-pixel-light/hi-res-smart-pxl40p-rgb-led-pixel-dot-strings/', false],
2781					['Smart PXL 60', '55.5 mm node', '/product/led-pixel-light/hi-res-smart-pxl60-rgb-rgbw-led-pixel-dot-strings/', false],
2782					['Smart PXL 100×25', 'Rectangular', '/product/led-pixel-light/hi-res-smart-pxl-100x25-rgb-rgbw-led-pixel-dot-strings/', false]
2783				]
2784			},
2785			'led-pixel-strip': {
2786				title: 'Pixel strip',
2787				banner: 'https://cdn.enttec.com/website/megamenu/banner_pixelstrip-768x420.jpg',
2788				desc: 'Individually-addressable LED pixel technology: precise detail for unforgettable, immersive installations.',
2789				cta: 'Compare pixel strip',
2790				href: '/products/led-pixel-strip/',
2791				products: [
2792					['5V RGB', '60 LEDs/m', '/product/led-pixel-strip/5v-rgb-60-leds-m-pixel-strip/', false],
2793					['5V RGBW', '60 LEDs/m', '/product/led-pixel-strip/5v-rgbw-60-leds-m-pixel-strip/', false],
2794					['12V RGB', '60 LEDs/m', '/product/led-pixel-strip/12v-rgb-60-leds-m-pixel-strip/', false],
2795					['12V RGBW', '60 LEDs/m', '/product/led-pixel-strip/12v-rgb
2795w-60-leds-m-pixel-strip/', false],
2796					['12V RGB long-range', 'Long runs', '/product/led-pixel-strip/12v-rgb-60-leds-m-long-range-pixel-strip/', false],
2797					['12V RGBW long-range', 'Long runs', '/product/led-pixel-strip/12v-rgbw-60-leds-m-long-range-pixel-strip/', false]
2798				]
2799			},
2800			'neon-flex': {
2801				// Single-product rail item: clicking the rail OR the CTA goes
2802				// straight to the product page (not a category page). Hovering
2803				// populates the right pane with banner + description + CTA but
2804				// no product list, the title itself IS the product.
2805				title: 'Neon Flex',
2806				banner: 'https://cdn.enttec.com/website/products/73060-neon-flex/73060-neon-flex-banner.jpg',
2807				desc:  'With its rich, color-changing LED pixels housed within a bendable silicone strip, our professional Neon Flex is one of the most versatile light fixtures imaginable.',
2808				href:  '/product/neon-flex/neon-flex-led-strip/',
2809				ctaLabel: 'View Neon Flex',
2810				directLink: true
2811			},
2812			'led-dimmers': {
2813				title: 'LED dimmers',
2814				banner: 'https://cdn.enttec.com/website/megamenu/banner_led_dimmers_2-768.jpg',
2815				desc: 'Unlock ultimate control and flawless dimming, engineered for brilliance and efficiency.',
2816				cta: 'Compare LED dimmers',
2817				href: '/products/led-dimmers/',
2818				products: [
2819					['CVC4', 'Constant voltage', '/product/led-dimmers/cvc4-high-power-constant-voltage-led-dimmer/', false],
2820					['CCC4', 'Constant current', '/product/led-dimmers/constant-current-led-dimmer/', false]
2821				]
2822			},
2823			'dmx-ethernet-distribution': {
2824				title: 'DMX Ethernet',
2825				banner: 'https://cdn.enttec.com/wp-content/uploads/2025/01/28112505/1903_x_1040_category_banner_dmxethernet-768x420.jpg',
2826				desc: 'Precise control and perfect synchronisation over incredibly long DMX-over-Ethernet setups.',
2827				cta: 'Compare ethernet gateways',
2828				href: '/products/dmx-ethernet-distribution/',
2829				products: [
2830					['Storm 10', '10 universes', '/product/dmx-ethernet-distribution/storm10-10-universe-ethernet-to-dmx-gateway/', false],
2831					['DIN Ethergate Mk2', '2 universes', '/product/dmx-ethernet-distribution/ethernet-to-dmx-rdm-converter/', false],
2832					['ODE MK3', '2 universes', '/product/dmx-ethernet-distribution/ode-mk3-dmx-ethernet-converter/', false]
2833				]
2834			},
2835			'dmx-usb-interface': {
2836				title: 'DMX interfaces',
2837				banner: 'https://cdn.enttec.com/website/megamenu/banner_dmx-768x420.jpg',
2838				desc: 'The easy way to control LED lighting from your computer. Portable. Precise. Perfect.',
2839				cta: 'Compare DMX interfaces',
2840				href: '/products/dmx-usb-interface/',
2841				products: [
2842					['DMX USB Pro', 'Industry standard', '/product/dmx-usb-interface/dmx-usb-pro-professional-1u-usb-to-dmx512-converter/', false],
2843					['Open DMX USB', 'Low-cost', '/product/dmx-usb-interface/open-dmx-usb/', false],
2844					['D-Split', 'Opto splitter', '/product/dmx-usb-interface/d-split-dmx-opto-splitter-isolator/', false],
2845					['DIN RDS4 Mk2', '4-port DIN splitter', '/product/dmx-usb-interface/dmx-rdm-splitter/', false],
2846					['EMU Interface', 'Hardware', '/product/dmx-usb-interface/emu-hardware-interface/', false]
2847				]
2848			},
2849			'led-strip-light': {
2850				title: 'LED strip',
2851				banner: 'https://cdn.enttec.com/website/megamenu/banner_CV_2-768x420.jpg',
2852				desc: "ENTTEC's NA series of constant-voltage LED strips: brighter output, superior durability, enhanced performance.",
2853				cta: 'Compare LED strip',
2854				href: '/products/led-strip-light/',
2855				products: [
2856					['NA1 white', '10m reel', '/product/led-strip-light/na1-white-led-strip-10m/', false],
2857					['NA2 tunable white', '10m reel', '/product/led-strip-light/na2-tunable-white-led-strip-10m/', false],
2858					['NA3 RGBW', '10m reel', '/product/led-strip-light/na3-rgbw-led-strip-10m/', false],
2859					['NA4 RGB', '10m reel', '/product/led-strip-light/na4-rgb-led-strip-10m/', false]
2860				]
2861			}
2862		};
2863
2864		var simpleData = {
2865			about: {
2866				items: [
2867					['About Us', '/about-enttec/'],
2868					['Authorised Distributors', '/authorised-distributors/'],
2869					['Contact Us', '/contact-us/'],
2870					['OEM', '/oem/']
2871				]
2872			},
2873			// Fallback for any region with no $region_support block (RU today).
2874			// British spelling to match 'Authorised' above; US has its own block.
2875			support: {
2876				items: [
2877					['Support Centre', 'https://support.enttec.com/'],
2878					['Training Videos', '/support/lighting-control-training-videos/'],
2879					['Pixel Protocols', '/pixel-protocols/']
2880				]
2881			}
2882		};
2883
2884		// ============================================================
2885		// CN overlay, merges Chinese titles + product names on top of the
2886		// EN data structures. Descriptions, "for who" tags, CTA template
2887		// stay English (marketing copy, translator TODO).
2888		// ============================================================
2889		var MM = window.enttecMM || { isCN: false, navLabels: {}, cnOverlay: null, ui: {} };
2890
2891		// ============================================================
2892		// Per-region overrides, apply BEFORE the CN overlay so CN wins
2893		// for its About/Support sub-items (which are Chinese).
2894		// ============================================================
2895		if ( MM.regionOverrides ) {
2896			var ro = MM.regionOverrides;
2897			if ( ro.about )   simpleData.about.items   = ro.about;
2898			if ( ro.support ) simpleData.support.items = ro.support;
2899			if ( ro.catUrls ) {
2900				Object.keys( ro.catUrls ).forEach( function ( slug ) {
2901					if ( catData[slug] ) catData[slug].href = ro.catUrls[slug];
2902				} );
2903			}
2904		}
2905
2906		// Per-region product URL overrides, match each baseline product's
2907		// URL by its slug (last path segment) and swap in the region URL
2908		// if one exists. Leaves products untouched on regions that don't
2909		// have an entry for that (cat, slug) pair.
2910		if ( MM.regionProductUrls ) {
2911			var rpu = MM.regionProductUrls;
2912			Object.keys( catData ).forEach( function ( cat ) {
2913				var map = rpu[cat];
2914				if ( ! map ) return;
2915				catData[cat].products = catData[cat].products.map( function ( p ) {
2916					var baselineUrl = p[2] || '';
2917					var parts = baselineUrl.split( '/' ).filter( Boolean );
2918					var slug = parts.length ? parts[ parts.length - 1 ] : '';
2919					if ( slug && map[ slug ] ) {
2920						return [ p[0], p[1], map[ slug ], p[3], p[4] ];
2921					}
2922					return p;
2923				} );
2924			} );
2925		}
2926
2927		// Region-specific EXTRA products, appended to the baseline list for
2928		// regions that carry SKUs not in the EN baseline (e.g. US's 3 extra
2929		// high-output LED strip variants).
2930		if ( MM.regionExtras ) {
2931			Object.keys( MM.regionExtras ).forEach( function ( cat ) {
2932				if ( catData[cat] ) {
2933					catData[cat].products = catData[cat].products.concat( MM.regionExtras[cat] );
2934				}
2935			} );
2936		}
2937
2938		if ( MM.isCN && MM.cnOverlay ) {
2939			var cnCat = MM.cnOverlay.cat || {};
2940			Object.keys( cnCat ).forEach( function ( slug ) {
2941				if ( ! catData[slug] ) return;
2942				if ( cnCat[slug].title )    catData[slug].title    = cnCat[slug].title;
2943				if ( cnCat[slug].desc )     catData[slug].desc     = cnCat[slug].desc;
2944				if ( cnCat[slug].ctaLabel ) catData[slug].ctaLabel = cnCat[slug].ctaLabel;
2945				// Merge product names + tags by index, href + legacy flag stay.
2946				if ( cnCat[slug].products ) {
2947					catData[slug].products = catData[slug].products.map( function ( p, i ) {
2948						var cn = cnCat[slug].products[i] || [];
2949						return [
2950							cn[0] || p[0], // Chinese name (or EN fallback)
2951							cn[1] || p[1], // tag (kept EN until translator review)
2952							p[2],           // href stays
2953							p[3],           // legacy flag stays
2954							cn[2] || p[4]   // badge (translated if CN provided one)
2955						];
2956					} );
2957				}
2958			} );
2959			var cnSimple = MM.cnOverlay.simple || {};
2960			if ( cnSimple.about )   simpleData.about.items   = cnSimple.about;
2961			if ( cnSimple.support ) simpleData.support.items = cnSimple.support;
2962		}
2963
2964		// ============================================================
2965		// Language/location localization. The dropdown is built client-side
2966		// from hardcoded root-relative paths, so it never passes through the
2967		// theme's permalink filters, on /fr/ its links stayed bare and threw
2968		// visitors back to the default locale. Prefix every internal URL with
2969		// the active site_location (e.g. /fr) ONCE here; every render helper
2970		// below reads the prefixed data. Region-default locale => empty prefix
2971		// => unchanged. External / mailto: / # links pass through.
2972		// ============================================================
2973		var LANGP = ( MM && MM.langPrefix ) || '';
2974		function mmLoc( href ) {
2975			if ( ! href || ! LANGP ) { return href; }
2976			if ( href.charAt( 0 ) !== '/' ) { return href; }
2977			if ( href === LANGP || href.indexOf( LANGP + '/' ) === 0 ) { return href; }
2978			return LANGP + href;
2979		}
2980		if ( LANGP ) {
2981			Object.keys( catData ).forEach( function ( slug ) {
2982				var d = catData[slug];
2983				if ( d.href ) { d.href = mmLoc( d.href ); }
2984				if ( d.products ) {
2985					d.products = d.products.map( function ( p ) {
2986						if ( p && p[2] ) { p[2] = mmLoc( p[2] ); }
2987						return p;
2988					} );
2989				}
2990			} );
2991			[ 'about', 'support' ].forEach( function ( k ) {
2992				if ( simpleData[k] && simpleData[k].items ) {
2993					simpleData[k].items = simpleData[k].items.map( function ( it ) {
2994						if ( it && it[1] ) { it[1] = mmLoc( it[1] ); }
2995						return it;
2996					} );
2997				}
2998			} );
2999			if ( MM.ui ) { MM.ui.brochure_href = mmLoc( MM.ui.brochure_href || '/catalogue/' ); }
3000		}
3001
3002		var catOrder = Object.keys( catData );
3003
3004		// --- DOM refs ---------------------------------------------------------
3005		var preview = document.getElementById( 'enttec-mm-preview' );
3006		var rail = document.getElementById( 'enttec-mm-rail' );
3007		var titleEl = document.getElementById( 'enttec-mm-title' );
3008		var descEl = document.getElementById( 'enttec-mm-desc' );
3009		var ctaEl = document.getElementById( 'enttec-mm-cta' );
3010		var productsEl = document.getElementById( 'enttec-mm-products' );
3011		var simpleListEl = document.getElementById( 'enttec-mm-simple-list' );
3012
3013		// --- Build rail (once) ------------------------------------------------
3014		// Brochure / catalogue link, a separate rail item below the category
3015		// list. Region-aware: US uses "Full 2026 Catalog" + /catalog/, rest
3016		// use "Full 2026 Catalogue" + /catalogue/, CN uses 产品手册.
3017		var brochureLabel = ( MM.ui && MM.ui.brochure_label ) || 'Full 2026 Catalogue';
3018		var brochureHref  = ( MM.ui && MM.ui.brochure_href )  || '/catalogue/';
3019		rail.innerHTML = '<div class="mm-rail-heading">' + ( ( MM.ui && MM.ui.categories_heading ) || 'Categories' ) + '</div>' +
3020			catOrder.map( function ( slug ) {
3021				var d = catData[slug];
3022				if ( d.directLink ) {
3023					// Same rail-item chrome as a regular category, including the
3024					// standard hover/active chev, the right-pane content +
3025					// product-page navigation are what set it apart.
3026					return '<a class="mm-rail-item mm-rail-direct" data-cat="' + slug + '" href="' + d.href + '">' +
3027						'<span>' + d.title + '</span>' +
3028						'<span class="mm-chev">
3028<svg width="7" height="10" viewBox="0 0 7 10" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M1.2 1L5 5L1.2 9"/></svg></span>' +
3029						'</a>';
3030				}
3031				return '<a class="mm-rail-item" data-cat="' + slug + '" href="' + d.href + '">' +
3032					'<span>' + d.title + '</span>' +
3033					'<span class="mm-chev"><svg width="7" height="10" viewBox="0 0 7 10" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M1.2 1L5 5L1.2 9"/></svg></span>' +
3034					'</a>';
3035			} ).join( '' ) +
3036			'<a class="mm-rail-brochure" href="' + brochureHref + '">' + brochureLabel + '</a>';
3037
3038		function setCategory( slug ) {
3039			var d = catData[slug];
3040			if ( ! d ) return;
3041
3042			// IDEMPOTENCE GUARD. Do nothing if this category is already what the
3043			// pane is showing.
3044			//
3045			// The rail is wired to `mouseover`, not `mouseenter`, and each rail
3046			// item contains child spans (its label and its chevron). So drifting
3047			// slowly across a single category fires this handler over and over as
3048			// the cursor crosses those children. That used to be harmless, because
3049			// re-running it just rewrote identical content. It stopped being
3050			// harmless the moment the pane got an entrance animation: every
3051			// repeat restarted it, so the title, blurb and CTA visibly re-faded on
3052			// a stationary-looking cursor. That is the flicker.
3053			//
3054			// Guarding here rather than switching the listener to `mouseenter`
3055			// keeps the rail's existing event contract (mouseover also covers
3056			// entering via a child, which mouseenter on the container would miss)
3057			// and fixes every other caller at the same time.
3058			if ( mmActiveCat === slug && null === mmShownSlug ) { return; }
3059			// Remember the category the pane should fall back to once a product
3060			// preview ends, and drop any preview state: switching category while
3061			// a product is previewed must not leave the pane thinking it is still
3062			// showing that product (it would then refuse to re-render it later).
3063			mmActiveCat = slug;
3064			mmShownSlug = null;
3065			rail.querySelectorAll( '.mm-rail-item' ).forEach( function ( el ) {
3066				el.classList.toggle( 'is-active', el.dataset.cat === slug );
3067			} );
3068			// Direct-link entries (single-SKU lines like Neon Flex) get a class on
3069			// the preview so CSS can collapse the right-side product column and
3070			// let the banner + description span the full pane.
3071			preview.classList.toggle( 'mm-direct-link', !! d.directLink );
3072
3073			var bannerEl = preview.querySelector( '.mm-banner' );
3074			if ( bannerEl ) {
3075				// Category banners are cover-fit lifestyle shots; drop the
3076				// contain/light-ground treatment a product preview may have left on.
3077				mmSetBannerImage( d.banner, false );
3078			}
3079			// Direct-link entries are single products; swap the eyebrow label
3080			// from 'Category' to 'Product' so the chrome reflects what's shown.
3081			var eyebrowEl = document.getElementById( 'enttec-mm-eyebrow' );
3082			if ( eyebrowEl ) {
3083				eyebrowEl.classList.remove( 'is-product-eyebrow' );
3084			}
3085			// Back to category mode: the CTA is meaningful again (it goes to the
3086			// category page) and the pane stops being a link.
3087			if ( mmLeftPane ) { mmLeftPane.classList.remove( 'is-product-mode' ); }
3088			if ( eyebrowEl && MM.ui ) {
3089				eyebrowEl.textContent = d.directLink
3090					? ( MM.ui.product_eyebrow || 'Product' )
3091					: ( MM.ui.category_eyebrow || 'Category' );
3092			}
3093			titleEl.textContent = d.title;
3094			descEl.textContent = d.desc;
3095			// Direct-link items supply their own CTA label ('View Neon Flex' rather
3096			// than the default 'Compare all <cat> products' template).
3097			var ctaText;
3098			if ( d.ctaLabel ) {
3099				ctaText = d.ctaLabel;
3100			} else {
3101				var ctaTemplate = ( MM.ui && MM.ui.compare_template ) || 'Compare all {title} products →';
3102				// Strip the trailing arrow off the template, it's appended below
3103				// as its own span so :hover can animate it independently.
3104				ctaText = ctaTemplate.replace( '{title}', d.title ).replace( /\s*→\s*$/, '' );
3105			}
3106			ctaEl.innerHTML = '<span>
3106' + ctaText + '</span><span class="mm-cta-arrow">→</span>';
3107			ctaEl.setAttribute( 'href', d.href );
3108			productsEl.innerHTML = d.directLink ? '' : d.products.map( function ( p ) {
3109				var badge = p[4] ? '<span class="mm-badge">' + p[4] + '</span>' : '';
3110				// data-slug drives the left-pane product preview. Derived from the
3111				// href rather than added to the product array on purpose: the CN
3112				// overlay merges those arrays by POSITION, so growing them is how
3113				// you mislabel every product after the insert.
3114				var slug = mmSlugFromHref( p[2] );
3115				return '<a class="mm-product' + ( p[3] ? ' is-legacy' : '' ) + '" href="' + p[2] + '"' +
3116					( slug ? ' data-slug="' + slug + '" data-name="' + mmAttr( p[0] ) + '"' : '' ) + '>' +
3117					'<span>' + p[0] + '<span class="mm-product-arrow">→</span></span>' +
3118					'<span class="mm-tag">' + badge + p[1] + '</span>' +
3119					'</a>';
3120			} ).join( '' );
3121
3122			// Animate the category swap too. Without this, hovering a product
3123			// eased in but hovering a CATEGORY snapped, and the inconsistency read
3124			// as the feature being half-finished.
3125			mmPlayEntrance();
3126		}
3127
3128		// --- Left-pane product preview ----------------------------------------
3129		// Hovering or focusing a product swaps the left pane (banner + title +
3130		// blurb + CTA) from the category to that product, and reverts on the way
3131		// out. The data comes from WooCommerce via MM.prod (see
3132		// enttec_mm_product_previews in the PHP above).
3133		//
3134		// Why hover is safe here, when hover-to-OPEN menus are a known usability
3135		// trap: the panel is already open and the cursor is already inside it, so
3136		// there is no "diagonal problem" (no chance of slipping off a trigger and
3137		// collapsing the menu). The only real risk is strobing, which is what the
3138		// intent delay and the sticky revert below are for.
3139		var prodData = MM.prod || {};
3140		var mmLeftPane = preview.querySelector( '.mm-pane-left' );
3141		var mmEyebrowEl = document.getElementById( 'enttec-mm-eyebrow' );
3142		var mmHoverTimer = null;
3143		var mmRevertTimer = null;
3144		var mmShownSlug = null;   // which product the pane is currently showing
3145		var mmActiveCat = null;   // category to fall back to
3146		var mmProductHref = null; // where the pane BODY goes while previewing
3147		var mmReduceMotion = window.matchMedia
3148			&& window.matchMedia( '( prefers-reduced-motion: reduce )' ).matches;
3149
3150		function mmAttr( s ) {
3151			return String( s == null ? '' : s ).replace( /"/g, '&quot;' );
3152		}
3153
3154		// Image URL -> promise that settles once the browser has it. Settles on
3155		// error too, so a missing image degrades to "no picture" instead of the
3156		// pane waiting forever. Event-driven: no polling, no timeouts.
3157		var mmImgReady = {};
3158		//
3159		// `priority` is the browser's fetchpriority hint: 'low' for background
3160		// warming so it never competes with the page's own images, 'high' for the
3161		// one the visitor is actually pointing at.
3162		function mmLoadImage( url, priority ) {
3163			if ( ! mmImgReady[ url ] ) {
3164				mmImgReady[ url ] = new Promise( function ( resolve ) {
3165					var img = new Image();
3166					img.fetchPriority = priority || 'high';
3167					img.onload = img.onerror = function () { resolve(); };
3168					img.src = url;
3169				} );
3170			}
3171			return mmImgReady[ url ];
3172		}
3173
3174		// Paint the banner. `isProduct` switches to the contain-fit, light-ground
3175		// treatment. While the panel is visible the new image crossfades in on
3176		// .mm-banner-next, but only after it has loaded (see the CSS note on
3177		// .mm-banner-next for why that ordering is the whole fix).
3178		//
3179		// mmBannerToken makes the newest call win: if the cursor moves on while an
3180		// image is still downloading, the stale load is ignored when it lands.
3181		var mmBannerToken = 0;
3182
3183		// Loading placeholder timing. Both numbers are deliberate:
3184		//
3185		// DELAY 150ms: nothing changes for the first 150ms, because a placeholder
3186		// that flashes up and vanishes reads as a glitch (NN/g: under a second, a
3187		// loading indicator does more harm than good). With the images warmed on
3188		// panel open, almost every hover lands inside this window and the
3189		// placeholder never appears. 150, not the usual 300, because until it
3190		// shows, the OLD picture sits beside the NEW product name, which is
3191		// actively misleading. 90ms intent + 150ms keeps the first visible
3192		// response under the 400ms Doherty threshold.
3193		//
3194		// HOLD 300ms: once shown, the placeholder stays at least this long, so a
3195		// load finishing just after the delay doesn't blink it on and off. It
3196		// also guarantees the placeholder's own 200ms fade has handed off before
3197		// the image fade reuses the layer.
3198		var MM_PH_DELAY = 150;
3199		var MM_PH_HOLD = 300;
3200		var mmPhTimer = null;
3201
3202		function mmClearPlaceholderTimer() {
3203			if ( mmPhTimer ) { clearTimeout( mmPhTimer ); mmPhTimer = null; }
3204		}
3205
3206		// Fade the layer to the bare light ground, no image. The ground IS the
3207		// placeholder: #ececec is the colour baked into every homepage crop, so
3208		// when the picture lands it develops onto the same grey rather than
3209		// replacing a different-looking box (the "dominant colour" placeholder,
3210		// for free, since every crop shares one ground).
3211		function mmShowPlaceholder( banner, next ) {
3212			if ( mmReduceMotion ) {
3213				banner.classList.add( 'is-product', 'is-loading' );
3214				banner.style.backgroundImage = 'none';
3215				return;
3216			}
3217			next.classList.remove( 'is-in' );
3218			next.classList.add( 'is-product' );
3219			next.style.backgroundImage = 'none';
3220			void next.offsetWidth;
3221			next.classList.add( 'is-in' );
3222		}
3223
3224		function mmSetBannerImage( url, isProduct ) {
3225			if ( ! url ) { return; }
3226			var banner = preview.querySelector( '.mm-banner' );
3227			if ( ! banner ) { return; }
3228			var next = banner.querySelector( '.mm-banner-next' );
3229			var want = 'url("' + url + '")';
3230			var token = ++mmBannerToken;
3231			isProduct = !! isProduct;
3232			mmClearPlaceholderTimer();
3233
3234			if ( banner.style.backgroundImage === want && banner.classList.contains( 'is-product' ) === isProduct ) {
3235				// Already showing it: just cancel a fade towards something else.
3236				if ( next ) { next.classList.remove( 'is-in' ); }
3237				return;
3238			}
3239
3240			function paintBase() {
3241				banner.classList.toggle( 'is-product', isProduct );
3242				banner.classList.remove( 'is-loading' );
3243				banner.style.backgroundImage = want;
3244			}
3245
3246			// Hidden (the page-load prime) or no layer: nobody is watching, paint now.
3247			if ( ! next || preview.hidden ) { paintBase(); return; }
3248
3249			// Only products get a placeholder. Category banners are prefetched with
3250			// the page, so they are effectively always ready.
3251			var phShownAt = 0;
3252			if ( isProduct ) {
3253				mmPhTimer = setTimeout( function () {
3254					mmPhTimer = null;
3255					if ( token !== mmBannerToken ) { return; }
3256					phShownAt = Date.now();
3257					mmShowPlaceholder( banner, next );
3258				}, MM_PH_DELAY );
3259			}
3260
3261			function fadeIn() {
3262				if ( token !== mmBannerToken ) { return; }
3263				if ( mmReduceMotion ) { paintBase(); return; }
3264				next.classList.remove( 'is-in' );
3265				next.classList.toggle( 'is-product', isProduct );
3266				next.style.backgroundImage = want;
3267				// Reflow so opacity 0 is committed before is-in goes on; without
3268				// it the browser merges the two and the fade never starts.
3269				void next.offsetWidth;
3270				next.classList.add( 'is-in' );
3271			}
3272
3273			mmLoadImage( url, 'high' ).then( function () {
3274				if ( token !== mmBannerToken ) { return; }
3275				mmClearPlaceholderTimer();
3276				var wait = phShownAt ? MM_PH_HOLD - ( Date.now() - phShownAt ) : 0;
3277				if ( wait > 0 ) { setTimeout( fadeIn, wait ); } else { fadeIn(); }
3278			} );
3279		}
3280
3281		// Hand-off once the layer is fully in: the banner takes what the layer
3282		// shows, then the layer drops. When the layer carried no image (the
3283		// placeholder), the banner becomes the bare ground and starts the loading
3284		// pulse. transitioncancel covers the panel closing mid-fade, so the
3285		// banner is never left one image behind.
3286		( function () {
3287			var banner = preview.querySelector( '.mm-banner' );
3288			var next = banner && banner.querySelector( '.mm-banner-next' );
3289			if ( ! next ) { return; }
3290			function handOff( e ) {
3291				if ( e.target !== next || 'opacity' !== e.propertyName ) { return; }
3292				if ( ! next.classList.contains( 'is-in' ) ) { return; }
3293				var img = next.style.backgroundImage;
3294				banner.classList.toggle( 'is-product', next.classList.contains( 'is-product' ) );
3295				banner.classList.toggle( 'is-loading', ! img || 'none' === img );
3296				banner.style.backgroundImage = img;
3297				requestAnimationFrame( function () { next.classList.remove( 'is-in' ); } );
3298			}
3299			next.addEventListener( 'transitionend', handOff );
3300			next.addEventListener( 'transitioncancel', handOff );
3301		}() );
3302
3303		// Last path segment of /product/<category>/<product>/, the WooCommerce
3304		// slug, which is how MM.prod is keyed.
3305		function mmSlugFromHref( href ) {
3306			if ( ! href ) { return ''; }
3307			var path = String( href ).split( '?' )[0].split( '#' )[0].replace( /\/+$/, '' );
3308			var parts = path.split( '/' );
3309			return parts.length ? parts[ parts.length - 1 ] : '';
3310		}
3311
3312		// Play the staggered entrance on the left pane.
3313		//
3314		// The class has to come OFF and go back ON with a reflow in between, or
3315		// the browser sees no change and never restarts the animation: swapping
3316		// from one product straight to another would animate once and then sit
3317		// still for every subsequent hover. Reading offsetWidth is the reflow.
3318		//
3319		// Called AFTER the content is written, never before: the from-state of
3320		// both keyframes is opacity 0, so the new content is hidden until it
3321		// animates and the pane never shows a half-built frame.
3322		//
3323		// Skipped while the panel is hidden, so the very first setCategory (which
3324		// primes the panel on page load) does not burn an animation nobody sees.
3325		var mmEnterFailsafe = null;
3326		function mmPlayEntrance() {
3327			if ( ! MM.productPreview || ! mmLeftPane || mmReduceMotion ) { return; }
3328			if ( preview.hidden ) { return; }
3329			mmLeftPane.classList.remove( 'is-entering' );
3330			void mmLeftPane.offsetWidth;
3331			mmLeftPane.classList.add( 'is-entering' );
3332
3333			// FAILSAFE, and it is not paranoia. The entrance keyframes start from
3334			// opacity 0 with fill-mode `both`, so while is-entering is on and the
3335			// animation has NOT started, the text renders at its from-state, i.e.
3336			// invisible. Every removal path is an event (animationend), and an
3337			// event that never fires would leave the product name and blurb blank.
3338			// This drops the class unconditionally after the longest stagger has
3339			// had time to finish, so the worst case degrades to "no animation"
3340			// rather than "no text".
3341			if ( mmEnterFailsafe ) { clearTimeout( mmEnterFailsafe ); }
3342			mmEnterFailsafe = setTimeout( function () {
3343				mmLeftPane.classList.remove( 'is-entering' );
3344				mmEnterFailsafe = null;
3345			}, 500 );
3346		}
3347
3348		// In product mode the pane body is a shortcut to the previewed product, so
3349		// the image and description are clickable rather than being dead text.
3350		//
3351		// Tracked in its own variable, NOT read off the CTA: the CTA is the
3352		// category compare link now, so the two destinations are genuinely
3353		// different and must not share a source.
3354		//
3355		// The guard for a real <a> matters more than it looks: the compare CTA
3356		// lives inside this pane, so without it a click on "Compare pixel
3357		// controllers" would be hijacked to the product page instead.
3358		//
3359		// Not an <a> wrapper: the pane is shared with category mode, where the
3360		// body is not a link, and re-parenting it per mode would rebuild the DOM
3361		// mid-animation. Keyboard access is unaffected, since the product row in
3362		// the list is still the real focusable anchor.
3363		if ( mmLeftPane ) {
3364			mmLeftPane.addEventListener( 'click', function ( e ) {
3365				if ( ! mmLeftPane.classList.contains( 'is-product-mode' ) ) { return; }
3366				if ( e.target.closest && e.target.closest( 'a' ) ) { return; }
3367				if ( mmProductHref && mmProductHref !== '#' ) { window.location.href = mmProductHref; }
3368			} );
3369		}
3370
3371		// Drop the class once the longest animation finishes, so will-change
3372		// stops holding a compositor layer for an idle, usually-hidden panel.
3373		if ( mmLeftPane ) {
3374			// Drop is-entering once NOTHING in the pane is still animating, rather
3375			// than watching one nominated element. Which element finishes last
3376			// differs by mode (the CTA is hidden in product mode, and a
3377			// display:none element runs no animation and fires no animationend),
3378			// so keying off a single node silently stopped working the moment the
3379			// modes diverged.
3380			mmLeftPane.addEventListener( 'animationend', function () {
3381				if ( ! mmLeftPane.getAnimations ) {
3382					mmLeftPane.classList.remove( 'is-entering' );
3383					return;
3384				}
3385				var running = mmLeftPane.getAnimations( { subtree: true } ).some( function ( a ) {
3386					return 'running' === a.playState;
3387				} );
3388				if ( ! running ) { mmLeftPane.classList.remove( 'is-entering' ); }
3389			} );
3390		}
3391
3392		function mmSwapPane( fn ) {
3393			fn();
3394			mmPlayEntrance();
3395		}
3396
3397		function mmShowProduct( slug, name, href ) {
3398			var d = prodData[ slug ];
3399			// No payload (or a product with neither image nor blurb) leaves the
3400			// category showing rather than blanking the pane.
3401			if ( ! d ) { return; }
3402			if ( mmShownSlug === slug ) { return; }
3403			mmShownSlug = slug;
3404
3405			mmSwapPane( function () {
3406				var bannerEl = preview.querySelector( '.mm-banner' );
3407				if ( bannerEl ) {
3408					// contain + light ground: product shots are the unit on white,
3409					// and `cover` crops off the connectors and mounting detail.
3410					// Set BEFORE the image so the incoming layer is already sized
3411					// `contain` as it fades in, rather than starting cover-cropped
3412					// and re-fitting mid-fade.
3413					mmSetBannerImage( d[0], true );
3414				}
3415				if ( mmEyebrowEl ) {
3416					mmEyebrowEl.textContent = ( MM.ui && MM.ui.product_eyebrow ) || 'Product';
3417					mmEyebrowEl.classList.add( 'is-product-eyebrow' );
3418				}
3419				titleEl.textContent = name || slug;
3420				descEl.textContent = d[1] || '';
3421				// The CTA is deliberately LEFT ALONE. It keeps saying
3422				// "Compare <category>" and keeps pointing at the category page, so
3423				// the route to a real comparison survives while a product is
3424				// previewed. Overwriting it with "View <product>" both duplicated
3425				// the row under the cursor and threw away the compare link.
3426				mmProductHref = href;
3427				if ( mmLeftPane ) { mmLeftPane.classList.add( 'is-product-mode' ); }
3428			} );
3429		}
3430
3431		// Back to whichever category the rail has active. setCategory rebuilds the
3432		// whole pane (and clears the product-only styling hooks) AND plays the
3433		// entrance itself, so this must not wrap it in mmSwapPane or the animation
3434		// would be restarted twice in the same frame.
3435		function mmRestoreCategory() {
3436			if ( null === mmShownSlug ) { return; }
3437			if ( ! mmActiveCat ) { mmShownSlug = null; return; }
3438			// Deliberately does NOT clear mmShownSlug first: setCategory's
3439			// idempotence guard reads it to tell "already showing this category"
3440			// from "coming back to it after a product preview", and clearing it
3441			// here would make the guard swallow the restore.
3442			setCategory( mmActiveCat );
3443		}
3444
3445		function mmClearTimers() {
3446			if ( mmHoverTimer ) { clearTimeout( mmHoverTimer ); mmHoverTimer = null; }
3447			if ( mmRevertTimer ) { clearTimeout( mmRevertTimer ); mmRevertTimer = null; }
3448			mmPendingSlug = null;
3449		}
3450
3451		// 90ms of hover intent. Much shorter than the 300-500ms usually quoted for
3452		// mega menus, for two reasons: that figure is for OPENING a panel from the
3453		// nav bar (where a false positive throws a panel over the page), and the
3454		// entrance animation now does the smoothing that a long delay used to.
3455		// At 150ms plus an instant swap the whole thing felt like a lag then a
3456		// jump; at 90ms plus a 380ms eased entrance it reads as responsive.
3457		// Keyboard focus skips the delay entirely: focus is deliberate.
3458		var mmPendingSlug = null;
3459		productsEl.addEventListener( 'mouseover', function ( e ) {
3460			var row = e.target.closest ? e.target.closest( '.mm-product[data-slug]' ) : null;
3461			if ( ! row ) { return; }
3462			var slug = row.dataset.slug;
3463
3464			// Same repeated-fire problem as the rail: each row contains child
3465			// spans (name, arrow, tag), so a slow drift inside ONE row fires this
3466			// several times. Without these guards every repeat cleared and re-set
3467			// the intent timer, so the preview kept being pushed 90ms further away
3468			// and could fail to appear at all while the cursor was still moving.
3469			if ( mmShownSlug === slug ) { mmClearTimers(); mmPendingSlug = null; return; }
3470			if ( mmPendingSlug === slug && mmHoverTimer ) { return; }
3471
3472			mmClearTimers();
3473			mmPendingSlug = slug;
3474			mmHoverTimer = setTimeout( function () {
3475				mmPendingSlug = null;
3476				mmShowProduct( slug, row.dataset.name, row.getAttribute( 'href' ) );
3477			}, 90 );
3478		} );
3479
3480		// Fetch every product image the first time the PRODUCTS panel opens.
3481		//
3482		// Warming only the list under the pointer (the first version) started the
3483		// download at the moment of the hover, so the first image of the session
3484		// arrived up to a second late: measured 2026-09-30, a CloudFront edge miss
3485		// is ~1s per image, a hit ~0.08s. The fade then started so late that the
3486		// preview read as "nothing happens". Opening the panel comes a second or
3487		// two before anyone reaches a product, which is enough head start.
3488		//
3489		// Why ALL of them, not just the active category: the whole set is 41 files,
3490		// 513KB, less than one hero image, and a visitor usually tries a second
3491		// category. The visible list goes first so the likeliest hover lands
3492		// first. Low priority, once per page, and only after the panel is opened,
3493		// so a page view that never uses the menu downloads nothing.
3494		var mmWarmed = false;
3495		function mmWarmList() {
3496			if ( mmWarmed ) { return; }
3497			mmWarmed = true;
3498			productsEl.querySelectorAll( '.mm-product[data-slug]' ).forEach( function ( row ) {
3499				var d = prodData[ row.dataset.slug ];
3500				if ( d && d[0] ) { mmLoadImage( d[0], 'low' ); }
3501			} );
3502			Object.keys( prodData ).forEach( function ( slug ) {
3503				var d = prodData[ slug ];
3504				if ( d && d[0] ) { mmLoadImage( d[0], 'low' ); }
3505			} );
3506		}
3507		productsEl.addEventListener( 'pointerenter', mmWarmList );
3508
3509		productsEl.addEventListener( 'focusin', function ( e ) {
3510			mmWarmList();
3511			var row = e.target.closest ? e.target.closest( '.mm-product[data-slug]' ) : null;
3512			if ( ! row ) { return; }
3513			mmClearTimers();
3514			mmShowProduct( row.dataset.slug, row.dataset.name, row.getAttribute( 'href' ) );
3515		} );
3516
3517		// Revert when the cursor leaves the WHOLE two-column pane, not just the
3518		// product list.
3519		//
3520		// Watching the list alone caused the worst flicker in the component. The
3521		// preview pane sits immediately left of the list and is the thing the
3522		// visitor is reading, so moving onto it is the most natural next move
3523		// (more so now that the pane itself is the click target). With the revert
3524		// on the list, that move destroyed the very content they were moving
3525		// towards: product flipped back to category, the hidden CTA reappeared,
3526		// and travelling between the list and the pane toggled the two states
3527		// over and over.
3528		//
3529		// Watch the WHOLE dropdown, not the pane either.
3530		//
3531		// The panel is a grid with a 22px gap between the category rail and the
3532		// pane. Measured: the rail ends at x=773 and the pane starts at x=795, so
3533		// there is a 22px strip that belongs to NEITHER. A cursor moving slowly
3534		// (which is exactly how someone reads a menu) lands in that strip, and a
3535		// mouseleave on the pane fired the revert from inside the still-open
3536		// dropdown. Moving on again re-showed the product, so drifting across the
3537		// block flickered between product and category. The same dead strip exists
3538		// between the pane and the product list.
3539		//
3540		// Scoping to the panel makes every one of those internal gaps a non-event.
3541		// The only thing that reverts the preview is the pointer leaving the whole
3542		// dropdown, which is the behaviour that was always intended. Hovering a
3543		// rail item still switches category, because setCategory does that
3544		// directly and clears product mode itself.
3545		var mmPaneWrap = preview;
3546
3547		mmPaneWrap.addEventListener( 'mouseleave', function ( e ) {
3548			// Belt and braces: ignore a leave whose destination is still inside
3549			// the pane (nested-element boundaries can fire one on some engines).
3550			if ( e.relatedTarget && mmPaneWrap.contains( e.relatedTarget ) ) { return; }
3551			mmClearTimers();
3552			mmRevertTimer = setTimeout( mmRestoreCategory, 180 );
3553		} );
3554
3555		mmPaneWrap.addEventListener( 'focusout', function ( e ) {
3556			// Ignore focus moving anywhere else inside the pane.
3557			if ( e.relatedTarget && mmPaneWrap.contains( e.relatedTarget ) ) { return; }
3558			mmClearTimers();
3559			mmRestoreCategory();
3560		} );
3561
3562		function setSimple( key ) {
3563			var d = simpleData[key];
3564			if ( ! d ) return;
3565			simpleListEl.innerHTML = d.items.map( function ( item ) {
3566				return '<a class="mm-simple-item" href="' + item[1] + '">' + item[0] + '</a>';
3567			} ).join( '' );
3568		}
3569
3570		// Default the panel to the category the visitor is currently in, so the menu
3571		// opens already showing their section, and mark that rail item as current
3572		// (a persistent highlight, separate from the hover/open .is-active state).
3573		function enttecMMLinkPath( href ) {
3574			try { return new URL( href, location.origin ).pathname.replace( /\/+$/, '' ); }
3575			catch ( e ) { return ( href || '' ).replace( /\/+$/, '' ); }
3576		}
3577		function enttecMMCurrentCat() {
3578			var here = location.pathname.replace( /\/+$/, '' );
3579			if ( ! here ) { return null; }
3580			for ( var i = 0; i < catOrder.length; i++ ) {
3581				var slug = catOrder[i], d = catData[slug];
3582				if ( ! d ) { continue; }
3583				if ( d.href && enttecMMLinkPath( d.href ) === here ) { return slug; }
3584				if ( d.products ) {
3585					for ( var j = 0; j < d.products.length; j++ ) {
3586						if ( d.products[j][2] && enttecMMLinkPath( d.products[j][2] ) === here ) { return slug; }
3587					}
3588				}
3589			}
3590			return null;
3591		}
3592		var enttecMMCur = enttecMMCurrentCat();
3593		setCategory( enttecMMCur || catOrder[0] );
3594		if ( enttecMMCur ) {
3595			var enttecMMCurEl = rail.querySelector( '.mm-rail-item[data-cat="' + enttecMMCur + '"]' );
3596			if ( enttecMMCurEl ) { enttecMMCurEl.classList.add( 'mm-rail-current' ); }
3597		}
3598
3599		// Wire up rail hover
3600		rail.addEventListener( 'mouseover', function ( e ) {
3601			var item = e.target.closest( '.mm-rail-item' );
3602			if ( ! item ) return;
3603			setCategory( item.dataset.cat );
3604		} );
3605
3606		// --- Find top-nav items by label -------------------------------------
3607		// Patterns are CJK-aware: normaliser keeps Latin letters + CJK only,
3608		// so 'products' matches "PRODUCTS" and '产品' matches "产品 ▼" alike.
3609		function normaliseLabel( s ) {
3610			return ( s || '' ).replace( /[^一-龥a-zA-Z]/g, '' ).toLowerCase();
3611		}
3612		function findTopLevelLi( labels ) {
3613			var menu = document.getElementById( 'mega-menu-header-menu' )
3614				|| document.querySelector( '#mega-menu-wrap-header-menu ul' )
3615				|| document.querySelector( 'header ul' );
3616			if ( ! menu ) return null;
3617			var topItems = menu.querySelectorAll( ':scope > li' );
3618			for ( var i = 0; i < topItems.length; i++ ) {
3619				var li = topItems[i];
3620				var link = li.querySelector( ':scope > a, :scope > .mega-menu-link' );
3621				if ( ! link ) continue;
3622				var label = normaliseLabel( link.textContent );
3623				for ( var j = 0; j < labels.length; j++ ) {
3624					var want = normaliseLabel( labels[j] );
3625					if ( label === want || ( want && label.indexOf( want ) >= 0 ) ) return li;
3626				}
3627			}
3628			return null;
3629		}
3630
3631		function positionPreview( triggerLi, variant ) {
3632			var navWrap = document.getElementById( 'mega-menu-wrap-header-menu' );
3633			var anchor = navWrap || triggerLi;
3634			var navRect = anchor.getBoundingClientRect();
3635			preview.style.top = ( navRect.bottom + 4 ) + 'px';
3636
3637			// BOTH variants anchor to the trigger. The products panel used to be
3638			// centred on the viewport, which dropped its categories rail ~300px
3639			// left of the PRODUCTS label (under ABOUT at 1440px), so browsing
3640			// started by looking back across the bar. Anchoring is the fix.
3641			var triggerLink = triggerLi.querySelector( ':scope > a, :scope > .mega-menu-link' );
3642			var triggerEl = triggerLink || triggerLi;
3643			var triggerRect = triggerEl.getBoundingClientRect();
3644			var previewWidth = preview.offsetWidth || ( variant === 'products' ? 820 : 240 );
3645			var left;
3646
3647			if ( variant === 'products' ) {
3648				// Line the rail's category names up under the label's TEXT, not
3649				// under the link's padding box: drop the link's own left padding,
3650				// then re-add nothing for the rail's. Both are measured live
3651				// because each one shrinks at the 1024px breakpoint (link padding
3652				// 40px -> 15px, rail padding 20px -> 16px), so hardcoding either
3653				// would misalign the tablet layout.
3654				var linkPadLeft = parseFloat( getComputedStyle( triggerEl ).paddingLeft ) || 0;
3655				var railItem = preview.querySelector( '.mm-rail-item' );
3656				var railPadLeft = railItem ? ( parseFloat( getComputedStyle( railItem ).paddingLeft ) || 0 ) : 0;
3657				left = triggerRect.left + linkPadLeft - railPadLeft;
3658			} else {
3659				// Simple variant, unchanged: centred under the visible link text
3660				// (not the li, whose padding pushes the centre rightward into the
3661				// next item).
3662				left = triggerRect.left + triggerRect.width / 2 - previewWidth / 2;
3663			}
3664
3665			// Keep it on screen. The wide variant runs out of room first: above
3666			// roughly 1400px the products panel aligns exactly, below that this
3667			// clamp pulls it back and the alignment degrades (86px out at 1280,
3668			// 214px at 1024). That is the accepted cost of a fixed 820px panel,
3669			// not a bug. Max is applied before min so a viewport narrower than the
3670			// panel still pins to the left gutter instead of going negative.
3671			// clientWidth, NOT window.innerWidth: innerWidth includes the vertical
3672			// scrollbar (~15px), which pushed the panel's right edge under it and
3673			// clipped a few pixels off the products column.
3674			var viewportWidth = document.documentElement.clientWidth || window.innerWidth;
3675			var minLeft = 12;
3676			var maxLeft = viewportWidth - previewWidth - 12;
3677			if ( left > maxLeft ) left = maxLeft;
3678			if ( left < minLeft ) left = minLeft;
3679			preview.style.left = Math.round( left ) + 'px';
3680			preview.style.transform = 'none';
3681		}
3682
3683		var hideTimer = null;
3684		var currentTrigger = null;
3685
3686		function openPreview( triggerLi, variant ) {
3687			clearTimeout( hideTimer );
3688
3689			// Already open with the same trigger + variant? Skip repositioning.
3690			// (mouseenter can fire repeatedly as the cursor crosses sub-elements
3691			// of the trigger or wobbles between trigger and preview; theme :hover
3692			// styles can change the trigger link's bounding box mid-flight,
3693			// which used to cause a 1-2px micro-shift on each re-fire.)
3694			if (
3695				currentTrigger === triggerLi &&
3696				preview.classList.contains( 'is-open' ) &&
3697				preview.classList.contains( 'mm-variant-' + variant )
3698			) {
3699				return;
3700			}
3701
3702			// If switching from another trigger, clean up its target class
3703			if ( currentTrigger && currentTrigger !== triggerLi ) {
3704				currentTrigger.classList.remove( 'mm-preview-target' );
3705			}
3706			currentTrigger = triggerLi;
3707			triggerLi.classList.add( 'mm-preview-target' );
3708			document.body.classList.add( 'enttec-mm-preview-active' );
3709
3710			// Set variant class
3711			preview.classList.remove( 'mm-variant-products', 'mm-variant-simple' );
3712			preview.classList.add( 'mm-variant-' + variant );
3713
3714			positionPreview( triggerLi, variant );
3715			if ( 'products' === variant ) { mmWarmList(); }
3716			preview.classList.add( 'is-open' );
3717			preview.removeAttribute( 'hidden' );
3718			preview.setAttribute( 'aria-hidden', 'false' );
3719		}
3720
3721		function closePreview() {
3722			hideTimer = setTimeout( function () {
3723				// If pinned, snap back to the pinned variant instead of closing.
3724				if ( PIN_VARIANT ) {
3725					var pinnedTrigger = findTopLevelLi( pinnedLabels( PIN_VARIANT ) );
3726					if ( pinnedTrigger ) {
3727						if ( PIN_VARIANT === 'products' ) {
3728							// nothing extra, products data is already rendered
3729						} else if ( PIN_VARIANT === 'about' || PIN_VARIANT === 'support' ) {
3730							setSimple( PIN_VARIANT );
3731						}
3732						var v = ( PIN_VARIANT === 'products' ) ? 'products' : 'simple';
3733						openPreview( pinnedTrigger, v );
3734						return;
3735					}
3736				}
3737				document.body.classList.remove( 'enttec-mm-preview-active' );
3738				if ( currentTrigger ) currentTrigger.classList.remove( 'mm-preview-target' );
3739				currentTrigger = null;
3740				preview.classList.remove( 'is-open' );
3741				preview.setAttribute( 'hidden', '' );
3742				preview.setAttribute( 'aria-hidden', 'true' );
3743			}, 180 );
3744		}
3745
3746		function pinnedLabels( pin ) {
3747			return ( MM.navLabels && MM.navLabels[ pin ] ) || [ pin ];
3748		}
3749
3750		function attach( triggerLi, variant, simpleKey ) {
3751			triggerLi.addEventListener( 'mouseenter', function () {
3752				if ( variant === 'simple' ) setSimple( simpleKey );
3753				openPreview( triggerLi, variant );
3754			} );
3755			triggerLi.addEventListener( 'mouseleave', closePreview );
3756		}
3757
3758		// =====================================================================
3759		// Mobile overlay, full-screen takeover with drilldown / accordion.
3760		// =====================================================================
3761		function initMobile() {
3762			var mobile = document.getElementById( 'enttec-mm-mobile' );
3763			if ( ! mobile ) return;
3764
3765			var headerTitle = mobile.querySelector( '.mmm-title' );
3766			var backBtn = mobile.querySelector( '.mmm-back' );
3767			var closeBtn = mobile.querySelector( '.mmm-close' );
3768			var panelRoot = mobile.querySelector( '[data-panel="root"]' );
3769
3770			var rootHtml = '';
3771
3772			// Category blocks, tap card to expand inline, see products + "View all" link
3773			var browseEyebrow = ( MM.ui && MM.ui.browse_eyebrow ) || 'Browse by category';
3774			rootHtml += '<div class="mmm-section-eyebrow">' + browseEyebrow + '</div>';
3775			rootHtml += '<div class="mmm-cat-grid">' + catOrder.map( function ( slug ) {
3776				var d = catData[slug];
3777				if ( d.directLink ) {
3778					// Direct-link card, same grid slot + banner image as a category,
3779					// but no expansion, taps just navigate to the product page.
3780					var bgStyle = d.banner ? ' style="background-image:url(\'' + d.banner + '\')"' : '';
3781					return '<div class="mmm-cat-block">' +
3782						'<a class="mmm-cat-card mmm-cat-direct" href="' + d.href + '"' + bgStyle + '>' +
3783							'<span class="mmm-cat-card-label">' + d.title + '</span>' +
3784							'<span class="mmm-cat-card-arrow"><span class="mmm-arrow-glyph">→</span></span>' +
3785						'</a>' +
3786						'</div>';
3787				}
3788				var products = d.products.map( function ( p ) {
3789					var badge = p[4] ? '<span class="mm-badge">' + p[4] + '</span>' : '';
3790					return '<a class="mmm-product' + ( p[3] ? ' is-legacy' : '' ) + '" href="' + p[2] + '">' +
3791						'<span class="mmm-product-name">' + p[0] + '</span>' +
3792						'<span class="mmm-tag">' + badge + p[1] + '</span>' +
3793						'</a>';
3794				} ).join( '' );
3795				var productCount = d.products.length;
3796				return '<div class="mmm-cat-block">' +
3797					'<button class="mmm-cat-card mmm-cat-toggle" data-cat="' + slug + '" type="button" aria-expanded="false" style="background-image:url(\'' + d.banner + '\')">' +
3798						'<span class="mmm-cat-card-label">' + d.title + '</span>' +
3799						'<span class="mmm-cat-card-arrow">' +
3800							( ( MM.ui && MM.ui.card_count_template ) || '{n} products' )
3801								.replace( '{n}', productCount )
3802								.replace( /^1 products$/, '1 product' ) +
3803							'<span class="mmm-arrow-glyph">▾</span>' +
3804						'</span>' +
3805					'</button>' +
3806					'<div class="mmm-cat-expand">' +
3807						products +
3808						'<a class="mmm-cat-view-all" href="' + d.href + '">' + ( ( MM.ui && MM.ui.compare_template ) || 'Compare all {title} products →' ).replace( '{title}', d.title ) + '</a>' +
3809					'</div>' +
3810					'</div>';
3811			} ).join( '' ) + '</div>';
3812
3813			// Brochure / catalogue link, region-aware, sits between the cards
3814			// and the More section so it's the same conceptual position as the
3815			// desktop rail (last item before secondary nav).
3816			rootHtml += '<a class="mmm-row mmm-row-brochure" href="' +
3817				( ( MM.ui && MM.ui.brochure_href ) || '/catalogue/' ) +
3818				'"><span>' + ( ( MM.ui && MM.ui.brochure_label ) || 'Full 2026 Catalogue' ) +
3819				'</span><span class="mmm-row-chev">›</span></a>';
3820
3821			// Sub-nav: About (accordion), Projects (link), Support (accordion), News (link)
3822			var L = MM.ui || {};
3823			rootHtml += '<div class="mmm-section-eyebrow">' + ( L.more_eyebrow || 'More' ) + '</div>';
3824			rootHtml += accordionRow( 'about', L.about_row || 'About', simpleData.about.items );
3825			rootHtml += '<a class="mmm-row" href="' + mmLoc( '/projects' ) + '"><span>' + ( L.projects_link || 'Projects' ) + '</span><span class="mmm-row-chev">›</span></a>';
3826			rootHtml += accordionRow( 'support', L.support_row || 'Support', simpleData.support.items );
3827			var newsHref = mmLoc( ( MM.regionOverrides && MM.regionOverrides.newsHref ) || '/news/' );
3828			rootHtml += '<a class="mmm-row" href="' + newsHref + '"><span>' + ( L.news_link || 'News' ) + '</span><span class="mmm-row-chev">›</span></a>';
3829
3830			panelRoot.innerHTML = rootHtml;
3831
3832			function accordionRow( key, label, items ) {
3833				var sub = items.map( function ( item ) {
3834					return '<a href="' + item[1] + '">' + item[0] + '</a>';
3835				} ).join( '' );
3836				return '<button class="mmm-row mmm-accordion" data-accordion="' + key + '" type="button"><span>' + label + '</span><span class="mmm-row-chev">›</span></button>' +
3837					'<div class="mmm-sub">' + sub + '</div>';
3838			}
3839
3840			// --- Event handlers ------------------------------------------------
3841			// Single-panel mobile menu, category cards expand inline to show
3842			// products + "view all" link. About/Support also expand inline.
3843			mobile.addEventListener( 'click', function ( e ) {
3844				var catToggle = e.target.closest( '.mmm-cat-toggle' );
3845				if ( catToggle ) {
3846					e.preventDefault();
3847					mobile.querySelectorAll( '.mmm-cat-toggle.is-expanded' ).forEach( function ( el ) {
3848						if ( el !== catToggle ) {
3849							el.classList.remove( 'is-expanded' );
3850							el.setAttribute( 'aria-expanded', 'false' );
3851						}
3852					} );
3853					catToggle.classList.toggle( 'is-expanded' );
3854					catToggle.setAttribute( 'aria-expanded', catToggle.classList.contains( 'is-expanded' ) ? 'true' : 'false' );
3855					return;
3856				}
3857
3858				var acc = e.target.closest( '.mmm-accordion' );
3859				if ( acc ) {
3860					e.preventDefault();
3861					mobile.querySelectorAll( '.mmm-accordion.is-expanded' ).forEach( function ( el ) {
3862						if ( el !== acc ) el.classList.remove( 'is-expanded' );
3863					} );
3864					acc.classList.toggle( 'is-expanded' );
3865				}
3866			} );
3867
3868			closeBtn.addEventListener( 'click', closeMobile );
3869			backBtn.hidden = true; // No drilldown; back button stays hidden.
3870
3871			// Esc closes the mobile overlay too.
3872			document.addEventListener( 'keydown', function ( e ) {
3873				if ( e.key === 'Escape' && mobile.classList.contains( 'is-open' ) ) {
3874					closeMobile();
3875				}
3876			} );
3877
3878			// Auto-close on viewport resize past the mobile breakpoint (tablet/desktop).
3879			var desktopMQ = window.matchMedia( '(min-width: 768px)' );
3880			var onBreakpoint = function ( e ) {
3881				if ( e.matches && mobile.classList.contains( 'is-open' ) ) {
3882					closeMobile();
3883				}
3884			};
3885			if ( typeof desktopMQ.addEventListener === 'function' ) {
3886				desktopMQ.addEventListener( 'change', onBreakpoint );
3887			} else if ( typeof desktopMQ.addListener === 'function' ) {
3888				desktopMQ.addListener( onBreakpoint ); // Safari < 14
3889			}
3890
3891			function openMobile() {
3892				mobile.classList.add( 'is-open' );
3893				mobile.removeAttribute( 'hidden' );
3894				mobile.setAttribute( 'aria-hidden', 'false' );
3895				document.body.style.overflow = 'hidden';
3896				// Make sure root panel is current (in case any state was left over).
3897				panelRoot.classList.add( 'is-current' );
3898				headerTitle.hidden = true;
3899				// Bypass Lenis smooth-scroll on the overlay's scroll container.
3900				if ( window.lenis && typeof window.lenis.stop === 'function' ) {
3901					window.lenis.stop();
3902				}
3903			}
3904			function closeMobile() {
3905				mobile.classList.remove( 'is-open' );
3906				mobile.setAttribute( 'hidden', '' );
3907				mobile.setAttribute( 'aria-hidden', 'true' );
3908				document.body.style.overflow = '';
3909				if ( window.lenis && typeof window.lenis.start === 'function' ) {
3910					window.lenis.start();
3911				}
3912			}
3913
3914			// --- Hook hamburger buttons (both our new topbar one and the theme's) -------
3915			var ourToggle = document.querySelector( '.enttec-mm-tb-hamburger' );
3916			if ( ourToggle ) {
3917				ourToggle.addEventListener( 'click', function ( e ) {
3918					e.preventDefault();
3919					openMobile();
3920				} );
3921			}
3922			var themeToggle = document.querySelector( '.mega-menu-toggle, .navbar-toggler, #menu_btn' );
3923			if ( themeToggle ) {
3924				themeToggle.addEventListener( 'click', function ( e ) {
3925					e.preventDefault();
3926					e.stopImmediatePropagation();
3927					openMobile();
3928				}, true );
3929			}
3930			if ( ! ourToggle && ! themeToggle ) {
3931				console.warn( '[enttec-mm-preview] mobile hamburger not found, preview disabled' );
3932			}
3933		}
3934
3935		function init() {
3936			// Initialise BOTH the mobile overlay and the desktop/tablet hover
3937			// dropdown. They never visually conflict, the CSS media queries
3938			// keep mobile UI under 768px and desktop UI above 768px. Wiring
3939			// both up at load time means resizing across the breakpoint
3940			// doesn't leave one side uninitialised (previous bug: opening the
3941			// mobile menu and then dragging the window wider left the desktop
3942			// dropdown unbound because the desktop branch never ran).
3943			initMobile();
3944
3945			// Desktop / tablet: hover-based dropdown.
3946			var productsLi = findTopLevelLi( pinnedLabels( 'products' ) );
3947			var aboutLi    = findTopLevelLi( pinnedLabels( 'about' ) );
3948			var supportLi  = findTopLevelLi( pinnedLabels( 'support' ) );
3949
3950			var anyFound = false;
3951			if ( productsLi ) { attach( productsLi, 'products', null ); anyFound = true; console.log( '[enttec-mm-preview] bound PRODUCTS' ); }
3952			if ( aboutLi )    { attach( aboutLi,    'simple',  'about' );  anyFound = true; console.log( '[enttec-mm-preview] bound ABOUT' ); }
3953			if ( supportLi )  { attach( supportLi,  'simple',  'support' ); anyFound = true; console.log( '[enttec-mm-preview] bound SUPPORT' ); }
3954
3955			if ( ! anyFound ) {
3956				console.warn( '[enttec-mm-preview] no top-nav items matched, preview disabled' );
3957				return;
3958			}
3959
3960			// Keep the dropdown open while the user moves into it.
3961			preview.addEventListener( 'mouseenter', function () { clearTimeout( hideTimer ); } );
3962			preview.addEventListener( 'mouseleave', closePreview );
3963
3964			// Esc closes the dropdown.
3965			document.addEventListener( 'keydown', function ( e ) {
3966				if ( e.key === 'Escape' && preview.classList.contains( 'is-open' ) ) {
3967					clearTimeout( hideTimer );
3968					closePreview();
3969				}
3970			} );
3971
3972			// Click anywhere outside the dropdown / trigger closes it.
3973			document.addEventListener( 'click', function ( e ) {
3974				if ( ! preview.classList.contains( 'is-open' ) ) return;
3975				if ( preview.contains( e.target ) ) return;
3976				if ( currentTrigger && currentTrigger.contains( e.target ) ) return;
3977				clearTimeout( hideTimer );
3978				closePreview();
3979			} );
3980
3981			window.addEventListener( 'resize', function () {
3982				if ( preview.classList.contains( 'is-open' ) && currentTrigger ) {
3983					var v = preview.classList.contains( 'mm-variant-products' ) ? 'products' : 'simple';
3984					positionPreview( currentTrigger, v );
3985				}
3986			} );
3987
3988			// If pinned, open immediately on load.
3989			if ( PIN_VARIANT ) {
3990				var pinnedTrigger = findTopLevelLi( pinnedLabels( PIN_VARIANT ) );
3991				if ( pinnedTrigger ) {
3992					var v = ( PIN_VARIANT === 'products' ) ? 'products' : 'simple';
3993					if ( v === 'simple' ) setSimple( PIN_VARIANT );
3994					openPreview( pinnedTrigger, v );
3995				}
3996			}
3997		}
3998
3999		if ( document.readyState === 'loading' ) {
4000			document.addEventListener( 'DOMContentLoaded', init );
4001		} else {
4002			init();
4003		}
4004	})();
4005	</script>
4005
4006	
4006<script id="enttec-nav-dropdown-highlight">
4007(function () {
4008	var here = location.pathname.replace( /\/+$/, '' ) || '/';
4009	if ( here === '/' ) { return; }
4010	function mark( root ) {
4011		root.querySelectorAll( 'a[href]' ).forEach( function ( a ) {
4012			var p = ( a.pathname || '' ).replace( /\/+$/, '' ) || '/';
4013			a.classList.toggle( 'enttec-nav-dd-current', p === here );
4014		} );
4015	}
4016	[ 'enttec-mm-preview', 'enttec-mm-mobile' ].forEach( function ( id ) {
4017		var root = document.getElementById( id );
4018		if ( ! root ) { return; }
4019		mark( root );
4020		new MutationObserver( function () { mark( root ); } ).observe( root, { childList: true, subtree: true } );
4021	} );
4022})();
4023</script>
4023
4024<style>
4025.woocommerce-checkout .woocommerce .woocommerce-checkout-review-order #payment button[name=woocommerce_checkout_place_order] {
4026    background-color: #0EA5DF;
4027}
4028	
4029.wp-block-kadence-column.kb-section-dir-horizontal .wp-block-kadence-advancedgallery {
4030    overflow: hidden;
4031}
4032</style>
4033	
4033<script type='text/javascript'>
4034		(function () {
4035			var c = document.body.className;
4036			c = c.replace(/woocommerce-no-js/, 'woocommerce-js');
4037			document.body.className = c;
4038		})();
4039	</script>
4039
4040	<!-- ERROR: WP-Optimize Minify was not allowed to save its cache on - wp-content/cache/wpo-minify/1791192652/assets/wpo-minify-footer-b-blocks-script1791191999.min.js --><!-- Please check if the path above is correct and ensure your server has write permission there! -->        
4040<script data-cfasync="false">
4041            window.dFlipLocation = 'https://www.enttec.com.au/wp-content/plugins/3d-flipbook-dflip-lite/assets/';
4042            window.dFlipWPGlobal = {"text":{"toggleSound":"Turn on\/off Sound","toggleThumbnails":"Toggle Thumbnails","toggleOutline":"Toggle Outline\/Bookmark","previousPage":"Previous Page","nextPage":"Next Page","toggleFullscreen":"Toggle Fullscreen","zoomIn":"Zoom In","zoomOut":"Zoom Out","toggleHelp":"Toggle Help","singlePageMode":"Single Page Mode","doublePageMode":"Double Page Mode","downloadPDFFile":"Download PDF File","gotoFirstPage":"Goto First Page","gotoLastPage":"Goto Last Page","share":"Share","mailSubject":"I wanted you to see this FlipBook","mailBody":"Check out this site {{url}}","loading":"DearFlip: Loading "},"viewerType":"flipbook","moreControls":"download,pageMode,startPage,endPage,sound","hideControls":"","scrollWheel":"false","backgroundColor":"#777","backgroundImage":"","height":"auto","paddingLeft":"20","paddingRight":"20","controlsPosition":"bottom","duration":800,"soundEnable":"true","enableDownload":"true","showSearchControl":"false","showPrintControl":"false","enableAnnotation":false,"enableAnalytics":"false","webgl":"true","hard":"none","maxTextureSize":"1600","rangeChunkSize":"524288","zoomRatio":1.5,"stiffness":3,"pageMode":"0","singlePageMode":"0","pageSize":"0","autoPlay":"false","autoPlayDuration":5000,"autoPlayStart":"false","linkTarget":"2","sharePrefix":"flipbook-"};
4043        </script>
4043
4044      
4044<script type="text/javascript" id="b-blocks-script-js-before">
4045/* <![CDATA[ */
4046const bBlocksPremiumChecker = false; 
4047//# sourceURL=b-blocks-script-js-before
4048/* ]]> */
4049</script>
vendor: 1 bytes, line 4049
4049
4050<script type="text/javascript" src="https://www.enttec.com.au/wp-content/plugins/b-blocks/build/script.js?ver=2.1.0" id="b-blocks-script-js"></script>
vendor: 1 bytes, line 4050
4050
4051<script type="text/javascript" id="woocommerce-google-analytics-integration-data-js-after">
4052/* <![CDATA[ */
4053window.ga4w = { data: {"cart":{"items":[],"coupons":[],"totals":{"currency_code":"AUD","total_price":0,"currency_minor_unit":2}}}, settings: {"tracker_function_name":"gtag","events":["purchase","add_to_cart","remove_from_cart","view_item_list","select_content","view_item","begin_checkout"],"identifier":"product_sku","currency":{"decimalSeparator":".","thousandSeparator":",","precision":2}} }; document.dispatchEvent(new Event("ga4w:ready"));
4054//# sourceURL=woocommerce-google-analytics-integration-data-js-after
4055/* ]]> */
4056</script>
vendor: 1 bytes, line 4056
4056
4057<script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit&amp;ver=1.0.0" id="google-translate-js"></script>
vendor: 1 bytes, line 4057
4057
4058<script type="text/javascript" src="https://www.enttec.com.au/wp-includes/js/dist/hooks.min.js?ver=dd5603f07f9220ed27f1" id="wp-hooks-js"></script>
vendor: 1 bytes, line 4058
4058
4059<script type="text/javascript" src="https://www.enttec.com.au/wp-includes/js/dist/i18n.min.js?ver=c26c3dc7bed366793375" id="wp-i18n-js"></script>
vendor: 1 bytes, line 4059
4059
4060<script type="text/javascript" id="wp-i18n-js-after">
4061/* <![CDATA[ */
4062wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } );
4063//# sourceURL=wp-i18n-js-after
4064/* ]]> */
4065</script>
vendor: 81 bytes, lines 4065-4066
4065
4066<script type="text/javascript" src="https://www.googletagmanager.com/gtag/js?id=
4066G-JPJJYZDMPX
vendor: 64 bytes, line 4066
4066" id="google-tag-manager-js" data-wp-strategy="async"></script>
4067<script type="text/javascript" src="https://www.enttec.com.au/wp-content/cache/wpo-minify/1791192652/assets/wpo-minify-footer-woocommerce-google-analytics-integration1791191999.min.js" id="wpo_min-footer-4-js"></script>
vendor: 1 bytes, line 4067
4067
4068<script type="text/javascript" src="https://www.enttec.com.au/wp-content/cache/wpo-minify/1791192652/assets/wpo-minify-footer-b-blocks-advanced-script1791191999.min.js" id="wpo_min-footer-5-js"></script>
vendor: 1 bytes, line 4068
4068
4069<script type="text/javascript" src="https://cdn.enttec.com/website/js/vendor/lenis.min.js?ver=1.1.13" id="lenis-min-js"></script>
vendor: 1 bytes, line 4069
4069
4070<script type="text/javascript" src="https://cdn.enttec.com/website/js/vendor/alpine.min.js?ver=2.7.0" id="apline-2-js"></script>
vendor: 1 bytes, line 4070
4070
4071<script type="text/javascript" id="wpo_min-footer-9-js-extra">
4072/* <![CDATA[ */
4073var contactDetails = {"address":["43 Indian Drive","Keysborough Victoria 3173","Australia"],"phone":"+61 (03) 9763 5755","whatsapp":"+61466122276","abn":"31664779168","emails":["[email protected]","[email protected]"]};
4074//# sourceURL=wpo_min-footer-9-js-extra
4075/* ]]> */
4076</script>
vendor: 1 bytes, line 4076
4076
4077<script type="text/javascript" src="https://www.enttec.com.au/wp-content/cache/wpo-minify/1791192652/assets/wpo-minify-footer-global-script1791191999.min.js" id="wpo_min-footer-9-js"></script>
vendor: 1 bytes, line 4077
4077
4078<script type="text/javascript" src="https://www.enttec.com.au/wp-content/cache/wpo-minify/1791192652/assets/wpo-minify-footer-script-page-js1791191999.min.js" id="wpo_min-footer-10-js"></script>
vendor: 1 bytes, line 4078
4078
4079<script type="text/javascript" src="https://www.enttec.com.au/wp-content/cache/wpo-minify/1791192652/assets/wpo-minify-footer-jquery-ui1791191999.min.js" id="wpo_min-footer-11-js"></script>
vendor: 1 bytes, line 4079
4079
4080<script type="text/javascript" src="https://www.enttec.com.au/wp-content/themes/eshop/js/slick.min.js?ver=1.0.0" id="slick-js"></script>
vendor: 1 bytes, line 4080
4080
4081<script type="text/javascript" src="https://www.enttec.com.au/wp-content/cache/wpo-minify/1791192652/assets/wpo-minify-footer-enttec-header-stack1791191999.min.js" id="wpo_min-footer-13-js"></script>
vendor: 1 bytes, line 4081
4081
4082<script type="text/javascript" src="https://www.enttec.com.au/wp-content/cache/wpo-minify/1791192652/assets/wpo-minify-footer-jquery-global-script1791191999.min.js" id="wpo_min-footer-14-js"></script>
vendor: 1 bytes, line 4082
4082
4083<script type="text/javascript" src="https://www.enttec.com.au/wp-content/cache/wpo-minify/1791192652/assets/wpo-minify-footer-enttec-geo-bar1791191999.min.js" id="wpo_min-footer-15-js"></script>
vendor: 1 bytes, line 4083
4083
4084<script type="text/javascript" src="https://www.enttec.com.au/wp-content/cache/wpo-minify/1791192652/assets/wpo-minify-footer-download-form-popup1791191999.min.js" id="wpo_min-footer-16-js"></script>
vendor: 1 bytes, line 4084
4084
4085<script type="text/javascript" src="https://www.enttec.com.au/wp-content/cache/wpo-minify/1791192652/assets/wpo-minify-footer-enttec-cdn-base1791191999.min.js" id="wpo_min-footer-17-js"></script>
vendor: 1 bytes, line 4085
4085
4086<script type="text/javascript" src="https://www.enttec.com.au/wp-content/cache/wpo-minify/1791192652/assets/wpo-minify-footer-emu-download-manifest1791191999.min.js" id="wpo_min-footer-18-js"></script>
vendor: 1 bytes, line 4086
4086
4087<script type="text/javascript" id="wpo_min-footer-19-js-extra">
4088/* <![CDATA[ */
4089var ajax_dynamic = {"ajaxurl":"https://www.enttec.com.au/wp-admin/admin-ajax.php?action=search_product","ownsVsr":""};
4090//# sourceURL=wpo_min-footer-19-js-extra
4091/* ]]> */
4092</script>
vendor: 1 bytes, line 4092
4092
4093<script type="text/javascript" src="https://www.enttec.com.au/wp-content/cache/wpo-minify/1791192652/assets/wpo-minify-footer-ajax_dynamic1791191999.min.js" id="wpo_min-footer-19-js"></script>
vendor: 1 bytes, line 4093
4093
4094<script type="text/javascript" id="wpo_min-footer-20-js-extra">
4095/* <![CDATA[ */
4096var edsI18n = {"showMore":"Show %d more","ofTotal":"of %d","goToPos":"Go to position %d"};
4097//# sourceURL=wpo_min-footer-20-js-extra
4098/* ]]> */
4099</script>
vendor: 1 bytes, line 4099
4099
4100<script type="text/javascript" src="https://www.enttec.com.au/wp-content/cache/wpo-minify/1791192652/assets/wpo-minify-footer-enttec-design-system1791191999.min.js" id="wpo_min-footer-20-js"></script>
vendor: 1 bytes, line 4100
4100
4101<script type="text/javascript" src="https://www.enttec.com.au/wp-includes/js/hoverIntent.min.js?ver=1.10.2" id="hoverIntent-js"></script>
vendor: 1 bytes, line 4101
4101
4102<script type="text/javascript" src="https://www.enttec.com.au/wp-content/cache/wpo-minify/1791192652/assets/wpo-minify-footer-megamenu1791191999.min.js" id="wpo_min-footer-22-js"></script>
vendor: 1 bytes, line 4102
4102
4103<script id="enttec-subnav-fix-js">
4104(function () {
4105	var nav  = document.getElementById( 'navbar' );
4106	var subs = document.querySelectorAll( 'nav.subnav, nav.etv-subnav, .sr-anchor-nav' );
4107	if ( ! nav || ! subs.length ) { return; }
4108	function sync() {
4109		var hidden = nav.classList.contains( 'scroll-down' );
4110		subs.forEach( function ( s ) { s.classList.toggle( 'nav-hidden', hidden ); } );
4111	}
4112	new MutationObserver( sync ).observe( nav, { attributes: true, attributeFilter: [ 'class' ] } );
4113	sync();
4114})();
4115</script>
4115
4116	<style id="elmx-free-css">
4117		.elmx-free-cta{max-width:520px;margin:18px 0 0;padding:20px 22px;border:1px solid rgba(255,255,255,.16);
4118			border-radius:14px;background:rgba(10,14,20,.55);backdrop-filter:blur(4px);color:#eef2f5;text-align:left}
4119		.elmx-free-account .elmx-free-result{margin-top:4px}
4120		.elmx-free-head h3{margin:6px 0 4px;font-size:18px;font-weight:600;color:#fff}
4121		.elmx-free-head p{margin:0;font-size:18px;line-height:1.5;color:#c3ccd6}
4122		.elmx-free-badge{display:inline-flex;align-items:center;gap:6px;background:#e6f7ec;color:#1a7f37;
4123			font-size:14px;font-weight:600;padding:4px 10px;border-radius:999px}
4124		.elmx-free-btn{display:inline-flex;align-items:center;gap:9px;margin-top:14px;padding:11px 20px;
4125			border:1px solid transparent;border-radius:24px;background:#0EA5DF;color:#fff;font-weight:600;
4126			font-size:18px;cursor:pointer;text-decoration:none;transition:background .15s ease,transform .1s ease}
4127		.elmx-free-btn:hover{background:#0c8bbb;color:#fff}
4128		.elmx-free-btn:active{transform:translateY(1px)}
4129		.elmx-free-btn[disabled]{opacity:.7;cursor:default}
4130		.elmx-free-fineprint{margin:10px 0 0;font-size:14px;color:#9fb0bd}
4131		.elmx-free-spinner{width:15px;height:15px;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;
4132			border-radius:50%;animation:elmxfreespin .7s linear infinite}
4133		@keyframes elmxfreespin{to{transform:rotate(360deg)}}
4134		.elmx-free-result{margin-top:14px}
4135		.elmx-free-note{font-size:18px;font-weight:600;margin-bottom:8px}
4136		.elmx-free-note--existing{color:#f5b544}
4137		.elmx-free-code-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
4138		.elmx-free-code{display:inline-flex;align-items:center;gap:10px;background:rgba(14,165,223,.12);
4139			border:1px dashed #0EA5DF;color:#7fd6f5;font-family:ui-monospace,"SF Mono",Menlo,monospace;
4140			font-size:18px;font-weight:500;padding:9px 13px;border-radius:10px;cursor:pointer}
4141		.elmx-free-clip{display:inline-flex;align-items:center;opacity:.75}
4142		.elmx-free-copied{font-size:14px;color:#1a7f37;font-weight:600;opacity:0;transition:opacity .2s ease}
4143		.elmx-free-copied.show{opacity:1}
4144		.elmx-free-redeem{margin-top:14px;padding:14px 16px;background:rgba(234,88,12,.12);
4145			border:1px solid rgba(234,88,12,.4);border-radius:10px}
4146		.elmx-free-redeem-h{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:600;color:#f2a35a;margin-bottom:6px}
4147		.elmx-free-redeem ol{margin:0;padding-left:20px;font-size:18px;color:#f0d9c6}
4148		.elmx-free-redeem li{margin:3px 0}
4149		.elmx-free-redeem code{background:rgba(255,255,255,.12);padding:1px 6px;border-radius:5px;font-size:14px}
4150		.elmx-free-error{margin-top:12px;font-size:18px;color:#ff8f8f}
4151		/* Compact banner variant for the Get-licence modal: head + button on one row. */
4152		.elmx-free-cta--banner{max-width:none;margin:0 0 6px;padding:14px 16px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-family:'Montserrat',-apple-system,sans-serif}
4153		.elmx-free-cta--banner .elmx-free-head{flex:1;min-width:190px}
4154		.elmx-free-cta--banner .elmx-free-head h3{font-size:18px;margin:5px 0 2px}
4155		.elmx-free-cta--banner .elmx-free-head p{font-size:14px}
4156		.elmx-free-cta--banner .elmx-free-btn{margin-top:0;flex:none}
4157		.elmx-free-cta--banner .elmx-free-result{flex-basis:100%}
4158		.elmx-free-cta--banner .elmx-free-badge{display:none}
4159		/* Account panel sits on the light licences page - flip colours to match the card there. */
4160		.elmx-free-account.elmx-free-cta,.elmx-free-account{color:#2b2b2b}
4161		.elmx-free-account .elmx-free-code{background:#f7fbfd;border-color:#0EA5DF;color:#0b6e93}
4162		.elmx-free-account .elmx-free-redeem{background:#fff7ed;border-color:#fed7aa}
4163		.elmx-free-account .elmx-free-redeem-h{color:#c2410c}
4164		.elmx-free-account .elmx-free-redeem ol{color:#7c2d12}
4165		.elmx-free-account .elmx-free-redeem code{background:#ffedd5}
4166		/* Idea 1 compact row (2026-07-08): neutral surface + ENTTEC-blue accent, no green. */
4167		.elmx-free-cta--banner{max-width:none;padding:11px 13px;gap:12px;flex-wrap:nowrap;border:1px solid #2a3340;border-left:3px solid #0EA5DF;border-radius:10px;background:#11161e;backdrop-filter:none;color:#EDEFF2}
4168		.elmx-free-cta--banner .eff-ic{width:32px;height:32px;border-radius:8px;background:#0b0f15;border:1px solid #2a3340;color:#2CC0F5;display:grid;place-items:center;flex:none}
4169		.elmx-free-cta--banner .eff-main{flex:1;min-width:0}
4170		.elmx-free-cta--banner .eff-top{display:flex;align-items:baseline;gap:8px}
4171		.elmx-free-cta--banner .eff-nm{font-size:14px;font-weight:700;color:#fff}
4172		.elmx-free-cta--banner .eff-price{font-size:12px;font-weight:700;color:#d7dbe0}
4173		.elmx-free-cta--banner .eff-sub{font-size:12px;color:#d7dbe0;margin-top:1px}
4174		/* Part number. Neutral ENTTEC grey (#9ea2a6), one step back from .eff-sub so the
4175		   reference code never competes with the universe count. Lives with the component
4176		   rather than the ELM page CSS so it is styled in every placement. */
4177		.elmx-free-cta--banner .eff-sku{font-size:12px;line-height:1.3;color:#9ea2a6;letter-spacing:.04em;margin-top:2px;font-variant-numeric:tabular-nums}
4178		.elmx-free-cta--banner .eff-action{flex:none}
4179		.elmx-free-cta--banner .elmx-free-result{flex-basis:auto;display:flex;align-items:center;gap:8px;margin-top:0}
4180		/* The banner is flex-wrap:nowrap so the head and button share one row. On a narrow
4181		   phone the 116px button squeezed the head to 77px and stacked the SKU vertically, so
4182		   below 560px the button drops to its own row, indented past the icon. Banner variant
4183		   only, which is used solely by the ELM 2026 licence modal. */
4184		@media(max-width:560px),(min-width:761px) and (max-width:950px){
4185			.elmx-free-cta--banner{flex-wrap:wrap;row-gap:10px}
4186			.elmx-free-cta--banner .eff-main{flex:1 1 auto;min-width:0}
4187			.elmx-free-cta--banner .eff-action{flex:1 0 100%;margin-left:44px}
4188		}
4189		.elmx-free-btn{margin-top:0;padding:9px 15px;border-radius:20px;font-size:14px}
4190		/* Has-state: the account's single free voucher, shown as a copyable chip. */
4191		.elmx-free-have{display:flex;align-items:center;gap:8px}
4192		.elmx-free-code{font-size:14px;padding:5px 9px;border-radius:7px;transition:border-color .18s ease,background .18s ease,transform .12s ease}
4193		.elmx-free-code:active{transform:scale(.97)}
4194		.elmx-free-copied{color:#3fb950;font-size:18px;font-weight:700;display:inline-flex;align-items:center;align-self:center;gap:4px;line-height:1;transform:translateY(3px);transition:opacity .2s ease,transform .2s ease}
4195		.elmx-free-copied svg{display:block;flex:none}
4196		.elmx-free-copied.show{transform:translateY(0)}
4197		/* Copy micro-animation: copy icon morphs to a check, chip pops, "Copied!" slides in. */
4198		.elmx-free-clip{position:relative;width:12px;height:12px}
4199		.elmx-free-clip .clip-copy,.elmx-free-clip .clip-check{position:absolute;inset:0;display:inline-flex;align-items:center;justify-content:center;transition:opacity .18s ease,transform .18s ease}
4200		.elmx-free-clip .clip-check{opacity:0;transform:scale(.3)}
4201		.elmx-free-code.copied{border-style:solid;border-color:#3fb950;background:rgba(63,185,80,.18);animation:elmxCopyPop .34s ease}
4202		.elmx-free-code.copied .clip-copy{opacity:0;transform:scale(.3)}
4203		.elmx-free-code.copied .clip-check{opacity:1;transform:scale(1);color:#3fb950;animation:elmxCheckPop .42s cubic-bezier(.2,1.5,.4,1)}
4204		/* Return-from-login: pulse the chip so a single click completes the copy if the
4205		   browser blocked the auto-copy (clipboard writes need a fresh user gesture). */
4206		.elmx-free-code.elmx-free-pulse{animation:elmxPulse 1.1s ease-in-out 3}
4207		@keyframes elmxPulse{0%,100%{box-shadow:0 0 0 0 rgba(63,185,80,0)}50%{box-shadow:0 0 0 4px rgba(63,185,80,.35)}}
4208		@keyframes elmxCopyPop{0%{transform:scale(1)}35%{transform:scale(1.06)}100%{transform:scale(1)}}
4209		@keyframes elmxCheckPop{0%{transform:scale(.2) rotate(-25deg)}60%{transform:scale(1.25) rotate(8deg)}100%{transform:scale(1) rotate(0)}}
4210		@media (prefers-reduced-motion:reduce){.elmx-free-spinner{animation:none}.elmx-free-copied,.elmx-free-code,.elmx-free-clip .clip-copy,.elmx-free-clip .clip-check{transition:none}.elmx-free-code.copied,.elmx-free-code.copied .clip-check,.elmx-free-code.elmx-free-pulse{animation:none}}
4211	</style>
4212	
4212<script id="elmx-free-js">
4213	(function(){
4214		var CFG = { ajaxurl: "https:\/\/www.enttec.com.au\/wp-admin\/admin-ajax.php", i18n: {
4215			generating: "Generating\u2026",
4216			unexpected: "Unexpected response.",
4217			generic:    "Something went wrong. Please try again.",
4218			network:    "Network error. Please try again."		} };
4219		// Set by the login-return CTA (?elmx_free=1): on landing we auto-generate the
4220		// licence if needed and try to auto-copy it. Browsers gate clipboard writes on a
4221		// fresh user gesture, so a page-load auto-copy can be refused (Chrome/Safari) ,
4222		// when it is, we pulse the chip so one click finishes the job.
4223		var AUTO = /[?&]elmx_free=1(?:&|$)/.test(location.search);
4224		function copyText(t){
4225			if(navigator.clipboard && navigator.clipboard.writeText){ return navigator.clipboard.writeText(t); }
4226			// Fallback for non-secure contexts (http) where the Clipboard API is absent.
4227			return new Promise(function(resolve, reject){
4228				try{
4229					var ta = document.createElement('textarea');
4230					ta.value = t; ta.setAttribute('readonly',''); ta.style.position='fixed'; ta.style.top='-9999px';
4231					document.body.appendChild(ta); ta.select();
4232					var ok = document.execCommand('copy'); document.body.removeChild(ta);
4233					ok ? resolve() : reject();
4234				}catch(e){ reject(e); }
4235			});
4236		}
4237		// Green "Copied!" confirmation, held ~3.5s so a returning user can't miss it.
4238		function showCopied(clip){
4239			clip.classList.remove('elmx-free-pulse');
4240			clip.classList.add('copied');
4241			var flag = clip.parentNode.querySelector('.elmx-free-copied');
4242			if(flag){ flag.classList.add('show'); }
4243			clearTimeout(clip._copiedT);
4244			clip._copiedT = setTimeout(function(){ clip.classList.remove('copied'); if(flag){ flag.classList.remove('show'); } }, 3500);
4245		}
4246		function doCopy(clip){
4247			var val = (clip.querySelector('.elmx-free-code-val')||{}).textContent || '';
4248			return copyText(val.trim()).then(function(){ showCopied(clip); });
4249		}
4250		document.addEventListener('click', function(e){
4251			var clip = e.target.closest ? e.target.closest('.elmx-free-code[data-clip]') : null;
4252			if(clip){ doCopy(clip).catch(function(){}); return; }
4253			var btn = e.target.closest ? e.target.closest('.elmx-free-generate') : null;
4254			if(!btn){ return; }
4255			e.preventDefault();
4256			if(btn.dataset.busy){ return; }
4257			btn.dataset.busy = '1';
4258			btn.setAttribute('disabled','disabled');
4259			var label = btn.querySelector('.elmx-free-btn-label');
4260			var spin  = btn.querySelector('.elmx-free-spinner');
4261			var origLabel = label ? label.textContent : '';
4262			if(label){ label.textContent = CFG.i18n.generating; }
4263			if(spin){ spin.hidden = false; }
4264			var cta = btn.closest('.elmx-free-cta');
4265			var errBox = cta ? cta.querySelector('.elmx-free-error') : null;
4266			if(errBox){ errBox.hidden = true; }
4267
4268			var body = new URLSearchParams();
4269			body.set('action','enttec_elmx_generate_free');
4270			body.set('nonce', btn.getAttribute('data-nonce') || '');
4271
4272			fetch(CFG.ajaxurl, { method:'POST', credentials:'same-origin',
4273				headers:{'Content-Type':'application/x-www-form-urlencoded'}, body: body.toString() })
4274			.then(function(r){ return r.json().catch(function(){ return { success:false, data:{ message:CFG.i18n.unexpected } }; }); })
4275			.then(function(res){
4276				if(res && res.success && res.data && res.data.code){
4277					var valEl = cta ? cta.querySelector('.elmx-free-code-val') : null;
4278					if(valEl){ valEl.textContent = res.data.code; }
4279					// Reveal the "you have a licence" cluster (the code chip); hide the generate button.
4280					var have = cta ? cta.querySelector('.elmx-free-have') : null;
4281					if(have){ have.hidden = false; }
4282					var primary = cta ? cta.querySelector('.elmx-free-generate--primary') : null;
4283					if(primary){ primary.hidden = true; }
4284					if(cta){ cta.setAttribute('data-elmx-free-state','has'); }
4285					// Reset the clicked button (restore its own label).
4286					delete btn.dataset.busy;
4287					btn.removeAttribute('disabled');
4288					if(label){ label.textContent = origLabel; }
4289					if(spin){ spin.hidden = true; }
4290					// Login-return flow: hand the fresh code straight to the clipboard.
4291					if(AUTO){ autoCopy(cta ? cta.querySelector('.elmx-free-code[data-clip]') : null); }
4292				} else {
4293					var msg = (res && res.data && res.data.message) ? res.data.message : CFG.i18n.generic;
4294					if(errBox){ errBox.textContent = msg; errBox.hidden = false; }
4295					resetBtn();
4296				}
4297			})
4298			.catch(function(){
4299				if(errBox){ errBox.textContent = CFG.i18n.network; errBox.hidden = false; }
4300				resetBtn();
4301			});
4302
4303			function resetBtn(){
4304				delete btn.dataset.busy;
4305				btn.removeAttribute('disabled');
4306				if(label){ label.textContent = origLabel; }
4307				if(spin){ spin.hidden = true; }
4308			}
4309		});
4310
4311		// Try the auto-copy;
4311 if the browser refuses (no user gesture on a page load),
4312		// pulse the chip so a single click completes it and still lands the green tick.
4313		function autoCopy(clip){
4314			if(!clip){ return; }
4315			doCopy(clip).catch(function(){
4316				clip.classList.add('elmx-free-pulse');
4317				setTimeout(function(){ clip.classList.remove('elmx-free-pulse'); }, 3500);
4318			});
4319		}
4320
4321		// On return from login/registration (?elmx_free=1): if they already hold a
4322		// voucher, copy it now; otherwise mint it first (that click-free fetch is fine),
4323		// and the generate-success handler above auto-copies once the code is in.
4324		if(AUTO){
4325			var cta = document.querySelector('.elmx-free-cta[data-elmx-free-state]');
4326			if(cta){
4327				var state = cta.getAttribute('data-elmx-free-state');
4328				if(state === 'has'){
4329					autoCopy(cta.querySelector('.elmx-free-code[data-clip]'));
4330				} else if(state === 'ready'){
4331					var gen = cta.querySelector('.elmx-free-generate');
4332					if(gen){ gen.click(); }
4333				}
4334			}
4335		}
4336	})();
4337	</script>
4337
4338	
4338<script>
4339    jQuery(document).ready(function($) {
4340        $('#redirect-message, .redirect_message_select').remove();
4341        var pageUrlFromPhp = '/store-policy/';
4342        var siteLocation = 'au';
4343
4344        // The cross-region redirect is decided early in <head>
4345        // (window.__enttecGeoCheck). Here we reuse that same result, no second
4346        // request, only for the legacy popup / same-region country picker.
4347        (window.__enttecGeoCheck || Promise.resolve(null)).then(function (d) {
4348            if (!d) { return; }
4349            // Just arrived via an auto-redirect, or the head already handled the
4350            // cross-region redirect: nothing to render here.
4351            if (window.ENTTEC_ARRIVED_VIA_REDIRECT) { return; }
4352            // (EU/EEA visitors are the exception: ask_first means the head did NOT
4353            // redirect, and redirect_html carries their consent popup.)
4354            if (window.ENTTEC_AUTOREDIRECT && !window.ENTTEC_LOGGED_IN
4355                && d.switch_region && d.redirect_url && !d.ask_first) { return; }
4356
4357            // Same-region currency/language switch, or auto-redirect off/logged-in.
4358            if (d.redirect_html) {
4359                $('body').append(d.redirect_html);
4360            }
4361            if (d.locations_html) {
4362                // SCOPED TO WHAT WE JUST APPENDED, never $(".country_selectbox").
4363                // Un-scoped, this re-initialised every country picker on the page,
4364                // and select2 4.x destroys the previous instance when it builds a
4365                // new one, which stripped the dark styling class off the picker
4366                // inside the contact dialog (enttec-contact-popup). This branch only
4367                // runs for an out-of-region visitor, so the breakage was invisible
4368                // to anyone testing from the right country.
4369                var $locations = $(d.locations_html);
4370                $('body').append($locations);
4371                var $locSelect = $locations.filter('.country_selectbox')
4372                    .add($locations.find('.country_selectbox'));
4373                $locSelect.select2();
4374                $locSelect.on('select2:select', function (e) {
4375                    var data = e.params.data;
4376                    let url =  data.element.dataset.url;
4377                    if(url !== "" && window.location.href !== url){
4378                        window.location.href = url;
4379                    }
4380                });
4381            }
4382        });
4383        
4384        $('.free-download-section').appendTo('.product-info-area');
4385
4386    });
4387
4388
4389</script>
4389
4390</body>
4391
4392</html>
4393
4394<!-- Performance optimized by Redis Object Cache. Learn more: https://wprediscache.com -->
4395<!-- Cached by WP-Optimize (gzip) - https://teamupdraft.com/wp-optimize/ - Last modified: October 6, 2026 4:37 am (Australia/Melbourne UTC:11) -->

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.