{"id":3120,"date":"2026-02-08T18:31:38","date_gmt":"2026-02-08T18:31:38","guid":{"rendered":"https:\/\/gorespyre.com\/spouwmuren\/"},"modified":"2026-03-31T21:51:17","modified_gmt":"2026-03-31T21:51:17","slug":"spouwmuren","status":"publish","type":"page","link":"https:\/\/gorespyre.com\/nl\/spouwmuren\/","title":{"rendered":"Spouwmuren"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"3120\" class=\"elementor elementor-3120 elementor-2733\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2658c16f e-con-full e-flex e-con e-parent\" data-id=\"2658c16f\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;sticky&quot;:&quot;top&quot;,&quot;sticky_on&quot;:[&quot;desktop&quot;,&quot;tablet&quot;,&quot;mobile&quot;],&quot;sticky_offset&quot;:0,&quot;sticky_effects_offset&quot;:0,&quot;sticky_anchor_link_offset&quot;:0}\">\n\t\t<div class=\"elementor-element elementor-element-5c1a8a5c e-con-full e-flex e-con e-child\" data-id=\"5c1a8a5c\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-33fb65b2 e-con-full e-flex e-con e-child\" data-id=\"33fb65b2\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-66e5b8d4 elementor-widget elementor-widget-heading\" data-id=\"66e5b8d4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">PRODUCT<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e31c912 e-transform elementor-widget elementor-widget-heading\" data-id=\"e31c912\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_transform_translateY_effect&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:0,&quot;sizes&quot;:[]},&quot;_transform_translateX_effect&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateX_effect_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateX_effect_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateY_effect_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_translateY_effect_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Prefab Beton <br> Spouwmuren <\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3dfc3ce7 e-con-full e-flex e-con e-parent\" data-id=\"3dfc3ce7\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-594da245 e-con-full e-flex e-con e-child\" data-id=\"594da245\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-4f153cdf e-con-full e-flex e-con e-child\" data-id=\"4f153cdf\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6eaa8606 first-screen elementor-widget elementor-widget-image\" data-id=\"6eaa8606\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;none&quot;}\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/gorespyre.com\/wp-content\/uploads\/2026\/01\/iJ9S4Qgj6mjfMziySXbAglI.jpg.avif\" title=\"Precast Concrete Cavity Walls\" alt=\"Groene gevel, groene gevelbekleding\" loading=\"lazy\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-511323e e-con-full e-flex e-con e-child\" data-id=\"511323e\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;motion_fx_motion_fx_scrolling&quot;:&quot;yes&quot;,&quot;motion_fx_translateY_effect&quot;:&quot;yes&quot;,&quot;motion_fx_translateY_speed&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:4,&quot;sizes&quot;:[]},&quot;motion_fx_translateY_affectedRange&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:{&quot;start&quot;:0,&quot;end&quot;:100}},&quot;motion_fx_devices&quot;:[&quot;desktop&quot;,&quot;tablet&quot;,&quot;mobile&quot;]}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-59dcbb25 elementor-widget elementor-widget-heading\" data-id=\"59dcbb25\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Geprefabriceerde gevelpanelen:<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7674c23b elementor-widget elementor-widget-text-editor\" data-id=\"7674c23b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<ul class=\"framer-text\"><li class=\"framer-text framer-styles-preset-10t3z6a\" data-preset-tag=\"h6\"><p class=\"framer-text framer-styles-preset-10t3z6a\">Meerdere maten en oppervlaktestructuren mogelijk.<\/p><\/li><li class=\"framer-text framer-styles-preset-10t3z6a framer-styles-preset-10t3z6a\" data-preset-tag=\"h6\" data-styles-preset=\"WDtq9CVt8\"><p class=\"framer-text framer-styles-preset-10t3z6a\">LCA is in ontwikkeling.<\/p><\/li><li class=\"framer-text framer-styles-preset-10t3z6a framer-styles-preset-10t3z6a\" data-preset-tag=\"h6\" data-styles-preset=\"WDtq9CVt8\"><p class=\"framer-text framer-styles-preset-10t3z6a\">Wij werken samen met fabrikanten met een enorme capaciteit, daarom kunnen wij momenteel alleen projecten accepteren vanaf 200 vierkante meter.<\/p><p class=\"framer-text framer-styles-preset-10t3z6a\"> <\/p><\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6967dade elementor-widget elementor-widget-heading\" data-id=\"6967dade\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Geprefabriceerde betonnen spouwmuren<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-73014e6f elementor-widget elementor-widget-text-editor\" data-id=\"73014e6f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p dir=\"auto\" data-pm-slice=\"1 1 []\">Spouwmuren bestaan uit twee afzonderlijke muren met een ruimte of &#8220;spouw&#8221; ertussen. Deze bouwmethode wordt toegepast vanwege de thermische en geluidsisolerende eigenschappen. De spouw voorkomt dat vocht de binnenruimtes binnendringt, waardoor het een uitstekende keuze is voor buitenmuren. Spouwmuren zijn veelzijdig en kunnen worden gevuld met isolatiemateriaal om de energie-effici\u00ebntie verder te verbeteren. Ze zijn geschikt voor residenti\u00eble, commerci\u00eble en industri\u00eble gebouwen en dienen als buitenmuren die helpen bij het handhaven van een comfortabel binnenklimaat. Bovendien kunnen deze muren verschillende afwerkingen ondersteunen, wat esthetische flexibiliteit in het ontwerp mogelijk maakt. Spouwmuren bieden daarom een combinatie van functionaliteit en aanpasbaarheid, waardoor ze een populaire keuze zijn in moderne bouwprojecten.      <\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-64812e38 elementor-widget elementor-widget-text-editor\" data-id=\"64812e38\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Een prefab beton sandwichgevelsysteem is een type gebouwschil dat bestaat uit twee betonlagen gescheiden door een isolerende laag. Deze panelen worden off-site geproduceerd en vervolgens naar de bouwplaats getransporteerd voor installatie. De buitenste betonlaag biedt structurele ondersteuning en weerbestendigheid, terwijl de binnenste laag esthetische aantrekkingskracht en aanvullende structurele ondersteuning biedt. De isolerende laag tussen de betonpanelen verbetert de thermische effici\u00ebntie van het gebouw, waardoor dit systeem bijzonder effectief is voor energiebesparing. Prefab beton sandwichgevels staan bekend om hun sterkte, duurzaamheid, thermische prestaties en snelle installatietijden. Onze prefab beton sandwichpanelen worden geleverd met een VertiScape bekleding.    <\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4ad73440 elementor-widget elementor-widget-text-editor\" data-id=\"4ad73440\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p dir=\"auto\" data-pm-slice=\"1 1 []\">Een spouwmuur, ook wel bekend als een Alvon-muur, bestaat uit twee geprefabriceerde betonwandelementen die met elkaar worden verbonden door middel van zogenaamde roosterliggers. Nadat de dubbele wandelementen op de bouwplaats zijn gemonteerd, worden ze gevuld met beton. Op deze manier wordt de snelle montage van geprefabriceerd beton gecombineerd met de solide kwaliteit van een gestorte constructie.  <\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4c06c2fe elementor-widget elementor-widget-heading\" data-id=\"4c06c2fe\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Wat zijn de voordelen van spouwmuren?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a47e028 elementor-widget elementor-widget-text-editor\" data-id=\"a47e028\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p dir=\"auto\">Spouwmuren bieden aanzienlijke voordelen op het gebied van flexibiliteit, kwaliteit en tijdsbesparing. Dankzij de volledig op maat gemaakte geprefabriceerde betonelementen en het feit dat er geen bekisting nodig is, kan een hoge bouwsnelheid worden bereikt. De wandelementen cre\u00ebren een waterdichte verbinding en een glad, hoogwaardig eindresultaat. De gladde afwerking maakt eventuele eindafwerking (die direct kan worden gestart) aanzienlijk eenvoudiger.   <\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1c16ac07 elementor-widget elementor-widget-heading\" data-id=\"1c16ac07\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Voor welke toepassingen zijn sandwichpanelen geschikt? <\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6b24654d elementor-widget elementor-widget-text-editor\" data-id=\"6b24654d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p dir=\"auto\" data-pm-slice=\"1 1 []\">Spouwmuren worden gebruikt voor een breed scala aan toepassingen. Deze omvatten de binnen- en buitenmuren van kelders en parkeergarages, trappenhuizen, liftschachten, keermuren, gevelwanden en woningscheidingswanden. Daarnaast zijn spouwmuren geschikt voor tunnelwanden, waterreservoirs en zwembaden.  <\/p><h5> <\/h5><h5 class=\"framer-text framer-styles-preset-17y2leo\">Ons assortiment spouwmuren<\/h5><p class=\"framer-text framer-styles-preset-dhbc05\">Onze partners bieden een zeer uitgebreid assortiment spouwmuren. Deze kunnen worden geleverd in verschillende schaal- en totale wanddiktes, met een maximale lengte van 10.000 mm. Wat betreft hoogte bent u beperkt tot 3.700 mm, tenzij u ervoor kiest de panelen verticaal te monteren. Indien gewenst kunnen Alvon-muren worden geleverd met de vereiste uitsparingen en raamopeningen.   <\/p><p dir=\"auto\">Uiteraard worden alle Alvon-muren die door onze partners worden geproduceerd, vervaardigd volgens de geldende normen en voorzien van de benodigde certificeringen.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-ec95cdd e-flex e-con-boxed e-con e-child\" data-id=\"ec95cdd\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1874949 elementor-widget elementor-widget-html\" data-id=\"1874949\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\nbody{\r\n\t--smooth-scroll: true;\r\n}\r\n.mdw-scroll-effect-143{\r\n    --circle-size: 50;\r\n}\r\n.mdw-scroll-effect-143 .e-con{\r\n\ttransition: 0s !important;\r\n}\r\nhtml:not(.elementor-html) .mdw-scroll-effect-143 .sticky{\r\n    position: fixed;\r\n    top: 0;\r\n}\r\nhtml:not(.elementor-html) .mdw-scroll-effect-143 .sticky-end{\r\n    position: absolute;\r\n    bottom: 0;\r\n    top: auto !important;\r\n}\r\n.mdw-scroll-effect-143-top:before{\r\n    background-size: auto 80%;\r\n}\r\n.mdw-scroll-effect-143-cards > .e-con{\r\n    max-width: 220px;\r\n    will-change: transform;\r\n    transform: translate(calc(var(--tx,0px) - 50%), calc(var(--ty,0px) - 50%));\r\n}\r\n.mdw-scroll-effect-143-card-bg{\r\n\theight: 100%;\r\n}\r\nhtml.elementor-html .mdw-scroll-effect-143-card-bg{\r\n    transform: none !important;\r\n    left: 0 !important;\r\n    top: 0 !important;\r\n    height: 100% !important;\r\n    width: 100% !important;\r\n}\r\nhtml.elementor-html .mdw-scroll-effect-143-bottom{\r\n    position: relative !important;\r\n}\r\nhtml:not(.elementor-html) .mdw-scroll-effect-143-bottom{\r\n    opacity: 0;\r\n}\r\nhtml:not(.elementor-html) .mdw-scroll-effect-143-bottom.mdw-show{\r\n    opacity: 1;\r\n}\r\nhtml:not(.elementor-html) .mdw-scroll-effect-143-bottom .elementor-widget:not(.elementor-widget-button){\r\n\twill-change: transform, opacity;\r\n\ttransform: translateY(-100px);\r\n\topacity: 0;\r\n}\r\n.mdw-scroll-effect-143-bottom .elementor-widget-text-editor p:last-child{\r\n    margin-bottom: 0;\r\n}\r\n.mdw-scroll-effect-143-button,\r\n.mdw-scroll-effect-143-button .elementor-button,\r\n.mdw-scroll-effect-143-button .elementor-button-text{\r\n    transition: 0s !important;\r\n}\r\n.mdw-scroll-effect-143-button{\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n}\r\n.mdw-scroll-effect-143-button > *:not(.mdw-scroll-effect-143-button-inner){\r\n    z-index: 1;\r\n}\r\n.mdw-scroll-effect-143-button-inner{\r\n    display: inline-block;\r\n    position: absolute;\r\n    height: 100%;\r\n    width: 100%;\r\n    border-radius: 50px;\r\n    opacity: 0;\r\n}\r\n.mdw-scroll-effect-143-button a{\r\n    outline: none;\r\n}\r\n@media(min-width: 768px){\r\nhtml:not(.elementor-html) .mdw-scroll-effect-143-cards{\r\n    pointer-events: none;\r\n}\r\n.mdw-tranparent{\r\n    background: transparent !important;\r\n    border-color: transparent !important;\r\n}\r\n}\r\n@media(max-width: 767px){\r\n.mdw-scroll-effect-143 > .e-con{\r\n    position: relative !important;\r\n    top: 0 !important;\r\n    left: 0 !important;\r\n}\r\n.mdw-scroll-effect-143-top:before{\r\n    background-size: auto 100% !important;\r\n}\r\n.mdw-scroll-effect-143-cards > .e-con{\r\n    position: relative !important;\r\n    top: unset !important;\r\n    left: unset !important;\r\n    opacity: 1 !important;\r\n    transform: unset !important;\r\n}\r\n.mdw-scroll-effect-143-cards > .e-con,\r\n.mdw-scroll-effect-143-cards > .e-con .elementor-widget-heading{\r\n    opacity: 1 !important;\r\n}\r\n.mdw-scroll-effect-143-bottom{\r\n    position: relative !important;\r\n}\r\n.mdw-scroll-effect-143-bottom .elementor-widget:not(.elementor-widget-button){\r\n\ttransform: translateY(0) !important;\r\n\topacity: 1 !important;\r\n}\r\n.mdw-scroll-effect-143-button{\r\n    transform: none !important;\r\n}\r\n.mdw-scroll-effect-143-button .elementor-button-text{\r\n    opacity: 1 !important;\r\n}\r\n.mdw-scroll-effect-143-button-inner{\r\n    display: none;\r\n}\r\n}\r\n<\/style>\r\n<script src=\"https:\/\/code.jquery.com\/jquery-2.2.4.min.js\"><\/script>\r\n<script>\r\nif (!MDWNonce143){\r\nvar MDWNonce143 = true\r\njQuery(document).ready(function($){\r\n\r\nvar selector = '.mdw-scroll-effect-143'\r\n\r\n$(selector).each(function(){\r\n\r\nvar $this = $(this),\r\ncontent = $this.find('.mdw-scroll-effect-143-top'),\r\ncards = $this.find('.mdw-scroll-effect-143-cards > .e-con'),\r\ncardBgs = $this.find('.mdw-scroll-effect-143-card-bg'),\r\nbottom = $this.find('.mdw-scroll-effect-143-bottom'),\r\nbutton = $this.find('.mdw-scroll-effect-143-button'),\r\nwindowHeight,\r\nwindowWidth,\r\ncardStartDimensions = [],\r\ncardTop = [],\r\ncardLeft = [],\r\nbuttonStyles = {},\r\nbuttonMiddleDistance,\r\nbgColors = [],\r\nborderColors = [],\r\nborderWidth = [],\r\nborderRadius = [],\r\ncircleSize = parseFloat(getProp($this[0], '--circle-size')),\r\nprogress\r\n\r\nfunction resetCards(){\r\n    if(windowWidth < 768){\r\n        cardBgs.each(function(){\r\n            $(this).removeAttr('style')\r\n        })\r\n    }\r\n}\r\n\r\nfunction getProp(el, prop){\r\n    return window.getComputedStyle(el).getPropertyValue(prop)\r\n}\r\n\r\nfunction getValues(){\r\n    cardBgs.each(function(i){\r\n        var cardBg = $(this)[0]\r\n        bgColors[i] = getProp(cardBg, 'background-color')\r\n        borderColors[i] = getProp(cardBg, 'border-color')\r\n        borderWidth[i] = parseFloat(getProp(cardBg, 'border-width'))\r\n        borderRadius[i] = parseFloat(getProp(cardBg, 'border-radius'))\r\n    })\r\n}\r\n\r\nfunction setButonStyles(){\r\n    var btn = button.find('.elementor-button')\r\n    buttonStyles.width = button.outerWidth()\r\n    buttonStyles.height = button.outerHeight()\r\n    buttonStyles.bg = btn.css('background-color')\r\n    buttonStyles.borderColor = btn.css('border-color')\r\n    buttonStyles.border = parseFloat(btn.css('border').split(' ')[0])\r\n    buttonStyles.borderRadius = parseFloat(btn.css('border-radius').split(' ')[0])\r\n    btn.addClass('mdw-tranparent')\r\n}\r\n\r\nfunction updateValues(){\r\n    windowHeight = $(window).height()\r\n    windowWidth = $(window).width()\r\n    cards.each(function(i){\r\n        var card = $(this)\r\n        cardStartDimensions.push({\r\n            width: card.outerWidth(),\r\n            height: card.outerHeight()\r\n        })\r\n    })\r\n    butonTop = button[0].offsetTop + (button.outerHeight() \/ 2)\r\n    buttonMiddleDistance = bottom.outerHeight() \/ 2 - butonTop\r\n}\r\n\r\nfunction setValues(){\r\n    cardTop = []\r\n    cardLeft = []\r\n    cards.each(function(i){\r\n        var top = parseFloat(getProp(this, 'top')),\r\n        left = parseFloat(getProp(this, 'left'))\r\n        cardTop[i] = top - (windowHeight \/ 2)\r\n        cardLeft[i] = left - (windowWidth \/ 2)\r\n    })\r\n}\r\n\r\nfunction setSticky(){\r\n    var rect = $this[0].getBoundingClientRect(),\r\n        inner = $this.children('.e-con:not(.mdw-scroll-effect-143-top)')\r\n\r\n    if (windowWidth < 768){\r\n        inner.removeClass('sticky sticky-end')\r\n        return\r\n    }\r\n    rect.top <= 0 ? inner.addClass('sticky') : inner.removeClass('sticky')\r\n    rect.bottom < windowHeight ? inner.addClass('sticky-end') : inner.removeClass('sticky-end')\r\n}\r\n\r\nfunction cahngeZIndex(){\r\n    var start = 0.85\r\n    if(progress <= start){\r\n        bottom.css('z-index', 'unset')\r\n        content.css('z-index', 10)\r\n    }else{\r\n        content.css('z-index', 'unset')\r\n        bottom.css('z-index', 10)\r\n    }\r\n}\r\n\r\nfunction animateCards(){\r\n    var start = 0, end = 0.6\r\n    if (progress >= start && progress <= end){\r\n        var p = progress \/ (end - start)\r\n        cards.each(function(i){\r\n            var ty = (cardTop[i] * p) * -1,\r\n                tx = (cardLeft[i] * p) * -1\r\n\r\n            this.style.setProperty('--tx', tx + 'px')\r\n            this.style.setProperty('--ty', ty + 'px')\r\n        })\r\n        cardBgs.each(function(i){\r\n            var d = cardStartDimensions[i],\r\n            w = d.width + (circleSize - d.width) * p,\r\n            h = d.height + (circleSize - d.height) * p,\r\n            br = borderRadius[i] + (buttonStyles.borderRadius - borderRadius[i]) * p,\r\n            bw = borderWidth[i] + (buttonStyles.border - borderWidth[i]) * p\r\n                \r\n            $(this).css({\r\n                width: w + 'px',\r\n                height: h + 'px',\r\n                borderRadius: br + 'px',\r\n                borderWidth: bw + 'px'\r\n            })\r\n        })\r\n\r\n        var featureElements = $this.find('.mdw-scroll-effect-143-cards > .e-con > .elementor-element:not(.mdw-scroll-effect-143-card-bg)'),\r\n        start2 = 0,\r\n        end2 = 0.1,\r\n        startScale = 1,\r\n        endScale = 0.9\r\n\r\n        if(progress <= end2){\r\n            var op = 1 - (progress \/ end2),\r\n            scale = startScale + (progress - start2) * (endScale - startScale) \/ (end2 - start2)\r\n            scale = Math.max(endScale, Math.min(1, scale))\r\n            featureElements.css({ opacity: op, transform: `scale(${scale})` })\r\n        }else{\r\n            featureElements.css({ opacity: 0, transform: `scale(${endScale})` })\r\n        }\r\n    }\r\n    cards.css('opacity', progress >= end ? 0 : 1)\r\n}\r\n\r\nfunction parseRGB(color){\r\n    var m = color.match(\/rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)\/)\r\n    return m ? { r:+m[1], g:+m[2], b:+m[3] } : { r:0, g:0, b:0 }\r\n}\r\n\r\nfunction mixColor(from, to, t){\r\n    return {\r\n        r: from.r + (to.r - from.r) * t,\r\n        g: from.g + (to.g - from.g) * t,\r\n        b: from.b + (to.b - from.b) * t\r\n    }\r\n}\r\n\r\nfunction animateCardColors(){\r\n    var start = 0, end = 0.6,\r\n    p = Math.min(Math.max(progress, start), end) \/ (end - start)\r\n    \r\n    cardBgs.each(function(i){\r\n        var fromBg = parseRGB(bgColors[i]),\r\n        toBg = parseRGB(buttonStyles.bg),\r\n        cBg = mixColor(fromBg, toBg, p),\r\n        fromB = parseRGB(borderColors[i]),\r\n        toB = parseRGB(buttonStyles.borderColor),\r\n        cBorder = mixColor(fromB, toB, p)\r\n        \r\n        $(this).css({\r\n            backgroundColor: `rgb(${cBg.r},${cBg.g},${cBg.b})`,\r\n            borderColor: `rgb(${cBorder.r},${cBorder.g},${cBorder.b})`\r\n        })\r\n    })\r\n}\r\n\r\nfunction animateBottom(){\r\n    var bottomContent = $this.find('.mdw-scroll-effect-143-bottom .elementor-widget:not(.elementor-widget-button)'),\r\n    buttonText = button.find('.elementor-button-text'),\r\n    start = 0.85, end = 1,\r\n    trY = -40,\r\n    startTextScale = 0.9,\r\n    endTextScale = 1,\r\n    textScale = startTextScale + ( (progress - start) \/ (end - start) ) * (endTextScale - startTextScale)\r\n        \r\n    if(progress >= start){\r\n        var p = (progress - start) \/ (end - start)\r\n        bottomContent.css({\r\n            transform: `translateY(${trY - (p * trY)}px)`,\r\n            opacity: p\r\n        })\r\n        buttonText.css({'opacity': p, 'transform': `scale(${textScale})`})\r\n    }else{\r\n        bottomContent.css({\r\n            transform: `translateY(${trY}px)`,\r\n            opacity: 0\r\n        })\r\n        buttonText.css('opacity', 0)\r\n    }\r\n}\r\n\r\nfunction animateButton(){\r\n    var buttonInner = button.find('.mdw-scroll-effect-143-button-inner'),\r\n    start = .6, end = 1\r\n    buttonInner.css('opacity', progress >= start ? 1 : 0)\r\n\r\n    if(progress >= start && progress <= end){\r\n        var p = (progress - start) \/ (end - start),\r\n        w = circleSize + (buttonStyles.width - circleSize) * p,\r\n        h = circleSize + (buttonStyles.height - circleSize) * p,\r\n        ty = buttonMiddleDistance * (1 - p)\r\n        buttonInner.css({\r\n            width: w + 'px',\r\n            height: h + 'px'\r\n        })\r\n        button.css({\r\n            transform: 'translate(0,' + ty + 'px)'\r\n        })\r\n    }else if(progress > end){\r\n        buttonInner.css({\r\n            width: buttonStyles.width + 'px',\r\n            height: buttonStyles.height + 'px',\r\n            transform: 'translate(0,0)'\r\n        })\r\n    }\r\n}\r\n\r\nfunction isMobileOrEditor(){\r\n    return windowWidth < 768 || $('html').hasClass('elementor-html')\r\n}\r\n\r\nfunction runAnimation(){\r\n    if (isMobileOrEditor()) return\r\n    var wrapTop = $this.offset().top,\r\n    scrollTop = $(window).scrollTop(),\r\n    wrapHeight = $this.height()\r\n    \r\n    progress = (scrollTop - wrapTop) \/ (wrapHeight - windowHeight)\r\n    progress = Math.max(0, Math.min(1, progress))\r\n    \r\n    cahngeZIndex()\r\n    animateCards()\r\n    animateCardColors()\r\n    animateBottom()\r\n    animateButton()\r\n}\r\n\r\nfunction init(){\r\n    bottom.addClass('mdw-show')\r\n    getValues()\r\n    setButonStyles()\r\n    button.append('<span class=\"mdw-scroll-effect-143-button-inner\"><\/span>')\r\n    setTimeout(function(){\r\n        button.find('.mdw-scroll-effect-143-button-inner').css({\r\n            backgroundColor: buttonStyles.bg,\r\n            border: buttonStyles.border + 'px solid ' + buttonStyles.borderColor\r\n        })\r\n    },50)\r\n}\r\nfunction calculateLayout(){\r\n    updateValues()\r\n    setValues()\r\n    setSticky()\r\n    runAnimation()\r\n}\r\nfunction render(){\r\n    setSticky()\r\n    runAnimation()\r\n}\r\n$(window).on('load', function(){\r\n    resetCards()\r\n    if (isMobileOrEditor()) return\r\n    init()\r\n    calculateLayout()\r\n})\r\n\r\n$(window).on('resize', function(){\r\n    resetCards()\r\n    calculateLayout()\r\n})\r\n\r\n$(window).on('scroll', function(){\r\n    render()\r\n})\r\n})\r\n}) \r\n}\r\n<\/script>\r\n\r\n<!-- Smooth Scroll -->\r\n<style>\r\nhtml.lenis,\r\nhtml.lenis body {\r\n\theight: auto;\r\n}\r\n.lenis.lenis-smooth {\r\n\tscroll-behavior: auto !important;\r\n}\r\n.lenis.lenis-smooth [data-lenis-prevent] {\r\n\toverscroll-behavior: contain;\r\n}\r\n.lenis.lenis-stopped {\r\n\toverflow: hidden;\r\n}\r\n.lenis.lenis-smooth iframe {\r\n\tpointer-events: none;\r\n}\r\n<\/style>\r\n<script src=\"https:\/\/unpkg.com\/lenis@1.1.11\/dist\/lenis.min.js\"><\/script>\r\n<script>\r\n$(document).ready(function () {\r\n\tvar smoothScroll = getComputedStyle(document.body).getPropertyValue('--smooth-scroll'),\r\n\t\tsmoothScroll = smoothScroll && smoothScroll == 'true'\r\n\r\n\tif (true) {\r\n\t\tvar lenis = new Lenis()\r\n\t\tfunction raf(time) {\r\n\t\t\tlenis.raf(time)\r\n\t\t\trequestAnimationFrame(raf)\r\n\t\t}\r\n\t\trequestAnimationFrame(raf)\r\n\t}\r\n})\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7e389f1 e-flex e-con-boxed e-con e-child\" data-id=\"7e389f1\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-be34f78 elementor-widget elementor-widget-html\" data-id=\"be34f78\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\nbody{\r\n\t--smooth-scroll: true;\r\n}\r\n.mdw-scroll-effect-143{\r\n    --circle-size: 50;\r\n}\r\n.mdw-scroll-effect-143 .e-con{\r\n\ttransition: 0s !important;\r\n}\r\nhtml:not(.elementor-html) .mdw-scroll-effect-143 .sticky{\r\n    position: fixed;\r\n    top: 0;\r\n}\r\nhtml:not(.elementor-html) .mdw-scroll-effect-143 .sticky-end{\r\n    position: absolute;\r\n    bottom: 0;\r\n    top: auto !important;\r\n}\r\n.mdw-scroll-effect-143-top:before{\r\n    background-size: auto 80%;\r\n}\r\n.mdw-scroll-effect-143-cards > .e-con{\r\n    max-width: 220px;\r\n    will-change: transform;\r\n    transform: translate(calc(var(--tx,0px) - 50%), calc(var(--ty,0px) - 50%));\r\n}\r\n.mdw-scroll-effect-143-card-bg{\r\n\theight: 100%;\r\n}\r\nhtml.elementor-html .mdw-scroll-effect-143-card-bg{\r\n    transform: none !important;\r\n    left: 0 !important;\r\n    top: 0 !important;\r\n    height: 100% !important;\r\n    width: 100% !important;\r\n}\r\nhtml.elementor-html .mdw-scroll-effect-143-bottom{\r\n    position: relative !important;\r\n}\r\nhtml:not(.elementor-html) .mdw-scroll-effect-143-bottom{\r\n    opacity: 0;\r\n}\r\nhtml:not(.elementor-html) .mdw-scroll-effect-143-bottom.mdw-show{\r\n    opacity: 1;\r\n}\r\nhtml:not(.elementor-html) .mdw-scroll-effect-143-bottom .elementor-widget:not(.elementor-widget-button){\r\n\twill-change: transform, opacity;\r\n\ttransform: translateY(-100px);\r\n\topacity: 0;\r\n}\r\n.mdw-scroll-effect-143-bottom .elementor-widget-text-editor p:last-child{\r\n    margin-bottom: 0;\r\n}\r\n.mdw-scroll-effect-143-button,\r\n.mdw-scroll-effect-143-button .elementor-button,\r\n.mdw-scroll-effect-143-button .elementor-button-text{\r\n    transition: 0s !important;\r\n}\r\n.mdw-scroll-effect-143-button{\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n}\r\n.mdw-scroll-effect-143-button > *:not(.mdw-scroll-effect-143-button-inner){\r\n    z-index: 1;\r\n}\r\n.mdw-scroll-effect-143-button-inner{\r\n    display: inline-block;\r\n    position: absolute;\r\n    height: 100%;\r\n    width: 100%;\r\n    border-radius: 50px;\r\n    opacity: 0;\r\n}\r\n.mdw-scroll-effect-143-button a{\r\n    outline: none;\r\n}\r\n@media(min-width: 768px){\r\nhtml:not(.elementor-html) .mdw-scroll-effect-143-cards{\r\n    pointer-events: none;\r\n}\r\n.mdw-tranparent{\r\n    background: transparent !important;\r\n    border-color: transparent !important;\r\n}\r\n}\r\n@media(max-width: 767px){\r\n.mdw-scroll-effect-143 > .e-con{\r\n    position: relative !important;\r\n    top: 0 !important;\r\n    left: 0 !important;\r\n}\r\n.mdw-scroll-effect-143-top:before{\r\n    background-size: auto 100% !important;\r\n}\r\n.mdw-scroll-effect-143-cards > .e-con{\r\n    position: relative !important;\r\n    top: unset !important;\r\n    left: unset !important;\r\n    opacity: 1 !important;\r\n    transform: unset !important;\r\n}\r\n.mdw-scroll-effect-143-cards > .e-con,\r\n.mdw-scroll-effect-143-cards > .e-con .elementor-widget-heading{\r\n    opacity: 1 !important;\r\n}\r\n.mdw-scroll-effect-143-bottom{\r\n    position: relative !important;\r\n}\r\n.mdw-scroll-effect-143-bottom .elementor-widget:not(.elementor-widget-button){\r\n\ttransform: translateY(0) !important;\r\n\topacity: 1 !important;\r\n}\r\n.mdw-scroll-effect-143-button{\r\n    transform: none !important;\r\n}\r\n.mdw-scroll-effect-143-button .elementor-button-text{\r\n    opacity: 1 !important;\r\n}\r\n.mdw-scroll-effect-143-button-inner{\r\n    display: none;\r\n}\r\n}\r\n<\/style>\r\n<script src=\"https:\/\/code.jquery.com\/jquery-2.2.4.min.js\"><\/script>\r\n<script>\r\nif (!MDWNonce143){\r\nvar MDWNonce143 = true\r\njQuery(document).ready(function($){\r\n\r\nvar selector = '.mdw-scroll-effect-143'\r\n\r\n$(selector).each(function(){\r\n\r\nvar $this = $(this),\r\ncontent = $this.find('.mdw-scroll-effect-143-top'),\r\ncards = $this.find('.mdw-scroll-effect-143-cards > .e-con'),\r\ncardBgs = $this.find('.mdw-scroll-effect-143-card-bg'),\r\nbottom = $this.find('.mdw-scroll-effect-143-bottom'),\r\nbutton = $this.find('.mdw-scroll-effect-143-button'),\r\nwindowHeight,\r\nwindowWidth,\r\ncardStartDimensions = [],\r\ncardTop = [],\r\ncardLeft = [],\r\nbuttonStyles = {},\r\nbuttonMiddleDistance,\r\nbgColors = [],\r\nborderColors = [],\r\nborderWidth = [],\r\nborderRadius = [],\r\ncircleSize = parseFloat(getProp($this[0], '--circle-size')),\r\nprogress\r\n\r\nfunction resetCards(){\r\n    if(windowWidth < 768){\r\n        cardBgs.each(function(){\r\n            $(this).removeAttr('style')\r\n        })\r\n    }\r\n}\r\n\r\nfunction getProp(el, prop){\r\n    return window.getComputedStyle(el).getPropertyValue(prop)\r\n}\r\n\r\nfunction getValues(){\r\n    cardBgs.each(function(i){\r\n        var cardBg = $(this)[0]\r\n        bgColors[i] = getProp(cardBg, 'background-color')\r\n        borderColors[i] = getProp(cardBg, 'border-color')\r\n        borderWidth[i] = parseFloat(getProp(cardBg, 'border-width'))\r\n        borderRadius[i] = parseFloat(getProp(cardBg, 'border-radius'))\r\n    })\r\n}\r\n\r\nfunction setButonStyles(){\r\n    var btn = button.find('.elementor-button')\r\n    buttonStyles.width = button.outerWidth()\r\n    buttonStyles.height = button.outerHeight()\r\n    buttonStyles.bg = btn.css('background-color')\r\n    buttonStyles.borderColor = btn.css('border-color')\r\n    buttonStyles.border = parseFloat(btn.css('border').split(' ')[0])\r\n    buttonStyles.borderRadius = parseFloat(btn.css('border-radius').split(' ')[0])\r\n    btn.addClass('mdw-tranparent')\r\n}\r\n\r\nfunction updateValues(){\r\n    windowHeight = $(window).height()\r\n    windowWidth = $(window).width()\r\n    cards.each(function(i){\r\n        var card = $(this)\r\n        cardStartDimensions.push({\r\n            width: card.outerWidth(),\r\n            height: card.outerHeight()\r\n        })\r\n    })\r\n    butonTop = button[0].offsetTop + (button.outerHeight() \/ 2)\r\n    buttonMiddleDistance = bottom.outerHeight() \/ 2 - butonTop\r\n}\r\n\r\nfunction setValues(){\r\n    cardTop = []\r\n    cardLeft = []\r\n    cards.each(function(i){\r\n        var top = parseFloat(getProp(this, 'top')),\r\n        left = parseFloat(getProp(this, 'left'))\r\n        cardTop[i] = top - (windowHeight \/ 2)\r\n        cardLeft[i] = left - (windowWidth \/ 2)\r\n    })\r\n}\r\n\r\nfunction setSticky(){\r\n    var rect = $this[0].getBoundingClientRect(),\r\n        inner = $this.children('.e-con:not(.mdw-scroll-effect-143-top)')\r\n\r\n    if (windowWidth < 768){\r\n        inner.removeClass('sticky sticky-end')\r\n        return\r\n    }\r\n    rect.top <= 0 ? inner.addClass('sticky') : inner.removeClass('sticky')\r\n    rect.bottom < windowHeight ? inner.addClass('sticky-end') : inner.removeClass('sticky-end')\r\n}\r\n\r\nfunction cahngeZIndex(){\r\n    var start = 0.85\r\n    if(progress <= start){\r\n        bottom.css('z-index', 'unset')\r\n        content.css('z-index', 10)\r\n    }else{\r\n        content.css('z-index', 'unset')\r\n        bottom.css('z-index', 10)\r\n    }\r\n}\r\n\r\nfunction animateCards(){\r\n    var start = 0, end = 0.6\r\n    if (progress >= start && progress <= end){\r\n        var p = progress \/ (end - start)\r\n        cards.each(function(i){\r\n            var ty = (cardTop[i] * p) * -1,\r\n                tx = (cardLeft[i] * p) * -1\r\n\r\n            this.style.setProperty('--tx', tx + 'px')\r\n            this.style.setProperty('--ty', ty + 'px')\r\n        })\r\n        cardBgs.each(function(i){\r\n            var d = cardStartDimensions[i],\r\n            w = d.width + (circleSize - d.width) * p,\r\n            h = d.height + (circleSize - d.height) * p,\r\n            br = borderRadius[i] + (buttonStyles.borderRadius - borderRadius[i]) * p,\r\n            bw = borderWidth[i] + (buttonStyles.border - borderWidth[i]) * p\r\n                \r\n            $(this).css({\r\n                width: w + 'px',\r\n                height: h + 'px',\r\n                borderRadius: br + 'px',\r\n                borderWidth: bw + 'px'\r\n            })\r\n        })\r\n\r\n        var featureElements = $this.find('.mdw-scroll-effect-143-cards > .e-con > .elementor-element:not(.mdw-scroll-effect-143-card-bg)'),\r\n        start2 = 0,\r\n        end2 = 0.1,\r\n        startScale = 1,\r\n        endScale = 0.9\r\n\r\n        if(progress <= end2){\r\n            var op = 1 - (progress \/ end2),\r\n            scale = startScale + (progress - start2) * (endScale - startScale) \/ (end2 - start2)\r\n            scale = Math.max(endScale, Math.min(1, scale))\r\n            featureElements.css({ opacity: op, transform: `scale(${scale})` })\r\n        }else{\r\n            featureElements.css({ opacity: 0, transform: `scale(${endScale})` })\r\n        }\r\n    }\r\n    cards.css('opacity', progress >= end ? 0 : 1)\r\n}\r\n\r\nfunction parseRGB(color){\r\n    var m = color.match(\/rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)\/)\r\n    return m ? { r:+m[1], g:+m[2], b:+m[3] } : { r:0, g:0, b:0 }\r\n}\r\n\r\nfunction mixColor(from, to, t){\r\n    return {\r\n        r: from.r + (to.r - from.r) * t,\r\n        g: from.g + (to.g - from.g) * t,\r\n        b: from.b + (to.b - from.b) * t\r\n    }\r\n}\r\n\r\nfunction animateCardColors(){\r\n    var start = 0, end = 0.6,\r\n    p = Math.min(Math.max(progress, start), end) \/ (end - start)\r\n    \r\n    cardBgs.each(function(i){\r\n        var fromBg = parseRGB(bgColors[i]),\r\n        toBg = parseRGB(buttonStyles.bg),\r\n        cBg = mixColor(fromBg, toBg, p),\r\n        fromB = parseRGB(borderColors[i]),\r\n        toB = parseRGB(buttonStyles.borderColor),\r\n        cBorder = mixColor(fromB, toB, p)\r\n        \r\n        $(this).css({\r\n            backgroundColor: `rgb(${cBg.r},${cBg.g},${cBg.b})`,\r\n            borderColor: `rgb(${cBorder.r},${cBorder.g},${cBorder.b})`\r\n        })\r\n    })\r\n}\r\n\r\nfunction animateBottom(){\r\n    var bottomContent = $this.find('.mdw-scroll-effect-143-bottom .elementor-widget:not(.elementor-widget-button)'),\r\n    buttonText = button.find('.elementor-button-text'),\r\n    start = 0.85, end = 1,\r\n    trY = -40,\r\n    startTextScale = 0.9,\r\n    endTextScale = 1,\r\n    textScale = startTextScale + ( (progress - start) \/ (end - start) ) * (endTextScale - startTextScale)\r\n        \r\n    if(progress >= start){\r\n        var p = (progress - start) \/ (end - start)\r\n        bottomContent.css({\r\n            transform: `translateY(${trY - (p * trY)}px)`,\r\n            opacity: p\r\n        })\r\n        buttonText.css({'opacity': p, 'transform': `scale(${textScale})`})\r\n    }else{\r\n        bottomContent.css({\r\n            transform: `translateY(${trY}px)`,\r\n            opacity: 0\r\n        })\r\n        buttonText.css('opacity', 0)\r\n    }\r\n}\r\n\r\nfunction animateButton(){\r\n    var buttonInner = button.find('.mdw-scroll-effect-143-button-inner'),\r\n    start = .6, end = 1\r\n    buttonInner.css('opacity', progress >= start ? 1 : 0)\r\n\r\n    if(progress >= start && progress <= end){\r\n        var p = (progress - start) \/ (end - start),\r\n        w = circleSize + (buttonStyles.width - circleSize) * p,\r\n        h = circleSize + (buttonStyles.height - circleSize) * p,\r\n        ty = buttonMiddleDistance * (1 - p)\r\n        buttonInner.css({\r\n            width: w + 'px',\r\n            height: h + 'px'\r\n        })\r\n        button.css({\r\n            transform: 'translate(0,' + ty + 'px)'\r\n        })\r\n    }else if(progress > end){\r\n        buttonInner.css({\r\n            width: buttonStyles.width + 'px',\r\n            height: buttonStyles.height + 'px',\r\n            transform: 'translate(0,0)'\r\n        })\r\n    }\r\n}\r\n\r\nfunction isMobileOrEditor(){\r\n    return windowWidth < 768 || $('html').hasClass('elementor-html')\r\n}\r\n\r\nfunction runAnimation(){\r\n    if (isMobileOrEditor()) return\r\n    var wrapTop = $this.offset().top,\r\n    scrollTop = $(window).scrollTop(),\r\n    wrapHeight = $this.height()\r\n    \r\n    progress = (scrollTop - wrapTop) \/ (wrapHeight - windowHeight)\r\n    progress = Math.max(0, Math.min(1, progress))\r\n    \r\n    cahngeZIndex()\r\n    animateCards()\r\n    animateCardColors()\r\n    animateBottom()\r\n    animateButton()\r\n}\r\n\r\nfunction init(){\r\n    bottom.addClass('mdw-show')\r\n    getValues()\r\n    setButonStyles()\r\n    button.append('<span class=\"mdw-scroll-effect-143-button-inner\"><\/span>')\r\n    setTimeout(function(){\r\n        button.find('.mdw-scroll-effect-143-button-inner').css({\r\n            backgroundColor: buttonStyles.bg,\r\n            border: buttonStyles.border + 'px solid ' + buttonStyles.borderColor\r\n        })\r\n    },50)\r\n}\r\nfunction calculateLayout(){\r\n    updateValues()\r\n    setValues()\r\n    setSticky()\r\n    runAnimation()\r\n}\r\nfunction render(){\r\n    setSticky()\r\n    runAnimation()\r\n}\r\n$(window).on('load', function(){\r\n    resetCards()\r\n    if (isMobileOrEditor()) return\r\n    init()\r\n    calculateLayout()\r\n})\r\n\r\n$(window).on('resize', function(){\r\n    resetCards()\r\n    calculateLayout()\r\n})\r\n\r\n$(window).on('scroll', function(){\r\n    render()\r\n})\r\n})\r\n}) \r\n}\r\n<\/script>\r\n\r\n<!-- Smooth Scroll -->\r\n<style>\r\nhtml.lenis,\r\nhtml.lenis body {\r\n\theight: auto;\r\n}\r\n.lenis.lenis-smooth {\r\n\tscroll-behavior: auto !important;\r\n}\r\n.lenis.lenis-smooth [data-lenis-prevent] {\r\n\toverscroll-behavior: contain;\r\n}\r\n.lenis.lenis-stopped {\r\n\toverflow: hidden;\r\n}\r\n.lenis.lenis-smooth iframe {\r\n\tpointer-events: none;\r\n}\r\n<\/style>\r\n<script src=\"https:\/\/unpkg.com\/lenis@1.1.11\/dist\/lenis.min.js\"><\/script>\r\n<script>\r\n$(document).ready(function () {\r\n\tvar smoothScroll = getComputedStyle(document.body).getPropertyValue('--smooth-scroll'),\r\n\t\tsmoothScroll = smoothScroll && smoothScroll == 'true'\r\n\r\n\tif (true) {\r\n\t\tvar lenis = new Lenis()\r\n\t\tfunction raf(time) {\r\n\t\t\tlenis.raf(time)\r\n\t\t\trequestAnimationFrame(raf)\r\n\t\t}\r\n\t\trequestAnimationFrame(raf)\r\n\t}\r\n})\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>PRODUCT Prefab Beton Spouwmuren Geprefabriceerde gevelpanelen: Meerdere maten en oppervlaktestructuren mogelijk. LCA is in ontwikkeling. Wij werken samen met fabrikanten met een enorme capaciteit, daarom kunnen wij momenteel alleen projecten accepteren vanaf 200 vierkante meter. Geprefabriceerde betonnen spouwmuren Spouwmuren bestaan uit twee afzonderlijke muren met een ruimte of &#8220;spouw&#8221; ertussen. Deze bouwmethode wordt toegepast vanwege [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"page-builder","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-3120","page","type-page","status-publish","hentry"],"_hostinger_reach_plugin_has_subscription_block":false,"_hostinger_reach_plugin_is_elementor":false,"_links":{"self":[{"href":"https:\/\/gorespyre.com\/nl\/wp-json\/wp\/v2\/pages\/3120","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gorespyre.com\/nl\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/gorespyre.com\/nl\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/gorespyre.com\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gorespyre.com\/nl\/wp-json\/wp\/v2\/comments?post=3120"}],"version-history":[{"count":4,"href":"https:\/\/gorespyre.com\/nl\/wp-json\/wp\/v2\/pages\/3120\/revisions"}],"predecessor-version":[{"id":5051,"href":"https:\/\/gorespyre.com\/nl\/wp-json\/wp\/v2\/pages\/3120\/revisions\/5051"}],"wp:attachment":[{"href":"https:\/\/gorespyre.com\/nl\/wp-json\/wp\/v2\/media?parent=3120"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}