{"id":14,"date":"2021-09-02T09:17:59","date_gmt":"2021-09-02T09:17:59","guid":{"rendered":"https:\/\/www.3p-france.com\/?page_id=14"},"modified":"2022-03-29T15:18:39","modified_gmt":"2022-03-29T15:18:39","slug":"a-propos","status":"publish","type":"page","link":"https:\/\/www.3p-france.com\/en\/about-us\/","title":{"rendered":"About us"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; admin_label=&#8221;Section Titre H1&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#FFFFFF&#8221; use_background_color_gradient=&#8221;on&#8221; background_color_gradient_start=&#8221;#ffffff&#8221; background_color_gradient_end=&#8221;rgba(255,255,255,0)&#8221; background_color_gradient_direction=&#8221;90deg&#8221; background_color_gradient_start_position=&#8221;15%&#8221; background_color_gradient_overlays_image=&#8221;on&#8221; background_image=&#8221;https:\/\/www.3p-france.com\/wp-content\/uploads\/2021\/09\/housse-isotherme.jpg&#8221; collapsed=&#8221;on&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row column_structure=&#8221;2_3,1_3&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;2_3&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text admin_label=&#8221;Titre H1&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;Poppins|700|||||||&#8221; header_font=&#8221;|||on|||||&#8221; header_font_size=&#8221;50px&#8221; header_font_size_tablet=&#8221;40px&#8221; header_font_size_phone=&#8221;30px&#8221; header_font_size_last_edited=&#8221;on|phone&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h1 style=\"padding-top: 15px !important;\">About 3P France<\/h1>\n<p>[\/et_pb_text][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; fullwidth=&#8221;on&#8221; admin_label=&#8221;Fils d&#8217;ariane&#8221; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;10px||10px||false|false&#8221; border_width_bottom=&#8221;1px&#8221; border_color_bottom=&#8221;#F4F4F4&#8243; collapsed=&#8221;on&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_fullwidth_code admin_label=&#8221;Fils d&#8217;ariane&#8221; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<div class=\"breadcrumbs\"><!-- [et_pb_line_break_holder] --> <a href=\"https:\/\/www.3p-france.com\/en\/\">Home<\/a> <span style=\"color: #3aa2db;\">\u2192<\/span> <b>About us<\/b><!-- [et_pb_line_break_holder] --><\/div>\n<p>[\/et_pb_fullwidth_code][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; background_enable_image=&#8221;off&#8221; background_size=&#8221;initial&#8221; background_position=&#8221;bottom_center&#8221; custom_padding=&#8221;||0px||false|false&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row column_structure=&#8221;1_3,2_3&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;||0px||false|false&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text admin_label=&#8221;Titre H2&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;Poppins|700|||||||&#8221; text_text_color=&#8221;#3AA2DB&#8221; header_2_text_align=&#8221;right&#8221; text_orientation=&#8221;right&#8221; header_2_text_align_tablet=&#8221;&#8221; header_2_text_align_phone=&#8221;center&#8221; header_2_text_align_last_edited=&#8221;on|phone&#8221; text_orientation_tablet=&#8221;&#8221; text_orientation_phone=&#8221;center&#8221; text_orientation_last_edited=&#8221;on|phone&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h2>Who we are ?<\/h2>\n<p>3P France, all forms of isothermal solutions[\/et_pb_text][\/et_pb_column][et_pb_column type=&#8221;2_3&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]Specialists in isotherms since 1987, 3P France is a customer-oriented company that is not afraid of challenges, an <strong>agile company<\/strong> that responds to all requests and problems: [\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=&#8221;1_5,1_5,1_5,1_5,1_5&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;1_5&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_blurb image=&#8221;https:\/\/www.3p-france.com\/wp-content\/uploads\/2021\/09\/size.png&#8221; image_max_width=&#8221;50%&#8221; admin_label=&#8221;serie&#8221; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; body_font=&#8221;Poppins||||||||&#8221; text_orientation=&#8221;center&#8221; global_colors_info=&#8221;{}&#8221;]Small or large series[\/et_pb_blurb][\/et_pb_column][et_pb_column type=&#8221;1_5&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_blurb image=&#8221;https:\/\/www.3p-france.com\/wp-content\/uploads\/2021\/09\/produit-standard.png&#8221; image_max_width=&#8221;50%&#8221; admin_label=&#8221;standard&#8221; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; body_font=&#8221;Poppins||||||||&#8221; text_orientation=&#8221;center&#8221; global_colors_info=&#8221;{}&#8221;]Standard products[\/et_pb_blurb][\/et_pb_column][et_pb_column type=&#8221;1_5&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_blurb image=&#8221;https:\/\/www.3p-france.com\/wp-content\/uploads\/2021\/09\/color.png&#8221; image_max_width=&#8221;50%&#8221; admin_label=&#8221;personnalisation&#8221; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; body_font=&#8221;Poppins||||||||&#8221; text_orientation=&#8221;center&#8221; global_colors_info=&#8221;{}&#8221;]Customized products[\/et_pb_blurb][\/et_pb_column][et_pb_column type=&#8221;1_5&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_blurb image=&#8221;https:\/\/www.3p-france.com\/wp-content\/uploads\/2021\/09\/sur-mesure.png&#8221; image_max_width=&#8221;50%&#8221; admin_label=&#8221;sur-mesure&#8221; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; body_font=&#8221;Poppins||||||||&#8221; text_orientation=&#8221;center&#8221; global_colors_info=&#8221;{}&#8221;]Tailor-made products[\/et_pb_blurb][\/et_pb_column][et_pb_column type=&#8221;1_5&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_blurb image=&#8221;https:\/\/www.3p-france.com\/wp-content\/uploads\/2021\/09\/innovation.png&#8221; image_max_width=&#8221;50%&#8221; admin_label=&#8221;innovation&#8221; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; body_font=&#8221;Poppins||||||||&#8221; text_orientation=&#8221;center&#8221; global_colors_info=&#8221;{}&#8221;]Innovative solutions[\/et_pb_blurb][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_code admin_label=&#8221;Timeline&#8221; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; hover_enabled=&#8221;0&#8243; global_colors_info=&#8221;{}&#8221; sticky_enabled=&#8221;0&#8243;]<\/p>\n<div class=\"cd-horizontal-timeline\">\n<div class=\"timeline\">\n<div class=\"events-wrapper\">\n<div class=\"events\">\n<ol>\n<li><a class=\"selected\" href=\"#0\" data-date=\"01\/01\/2007\">1987<\/a><\/li>\n<li><a href=\"#0\" data-date=\"01\/01\/2012\">1992<\/a><\/li>\n<li><a href=\"#0\" data-date=\"01\/01\/2015\">2015<\/a><\/li>\n<li><a href=\"#0\" data-date=\"01\/01\/2016\">2016<\/a><\/li>\n<li><a href=\"#0\" data-date=\"01\/01\/2021\">2021<\/a><\/li>\n<li><a href=\"#0\" data-date=\"01\/01\/2022\">2022<\/a><\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<\/div>\n<p><!-- .events --><\/p>\n<\/div>\n<p><!-- .events-wrapper --><\/p>\n<ul class=\"cd-timeline-navigation\">\n<li><a class=\"prev inactive\" href=\"#0\">Prev<\/a><\/li>\n<li><a class=\"next\" href=\"#0\">Next<\/a><\/li>\n<\/ul>\n<p><!-- .cd-timeline-navigation --><\/p>\n<\/div>\n<p><!-- .timeline --><\/p>\n<div class=\"events-content\">\n<ol>\n<li class=\"selected\" data-date=\"01\/01\/2007\">3P France is founded in Randers, Denmark, with the creation of a factory to manufacture PE thermal bags.<br \/>\nLaunch of the iconic thermal bag with a hard-wearing integrated handle and snap closure.<\/li>\n<li data-date=\"01\/01\/2012\">Creation of a new production line for thermal bags with handle:<br \/>\n&#8211; Creation of the range of thermal covers<br \/>\n&#8211; Extension of our range to include Double layer kraft bags with a subcontractor in Denmark.<br \/>\n&#8211; Extension of our range with products around flexible nylon and polyester coolers, as well as polypropylene shopping bags, with a subcontracting factory in China.<\/li>\n<li data-date=\"01\/01\/2015\">Development of our range of kraft freezer bags with a new partner in Turkey specialising in large production runs.<br \/>\nLaunch of the first isothermal bag made from recycled PE: the \u201cIsogreen\u00ae bag\u201d.<\/li>\n<li data-date=\"01\/01\/2016\">Launch of a new range of cold accumulators in the form of negative and positive cold gel packs.<\/li>\n<li data-date=\"01\/01\/2021\">Standard thermal bags range switch from pure PE to eco-designed recycled PE:<br \/>\n&#8211; First 100% vegetable-based PE thermal bag launch<\/li>\n<li data-date=\"01\/01\/2022\">Launch of a new range of coolers made from natural materials.<\/li>\n<\/ol>\n<\/div>\n<p><!-- .events-content --><\/p>\n<\/div>\n<p><script>jQuery(document).ready(function($){\n\tvar timelines = $('.cd-horizontal-timeline'),\n\t\teventsMinDistance = 60;<\/p>\n<p>\t(timelines.length > 0) && initTimeline(timelines);<\/p>\n<p>\tfunction initTimeline(timelines) {\n\t\ttimelines.each(function(){\n\t\t\tvar timeline = $(this),\n\t\t\t\ttimelineComponents = {};\n\t\t\t\/\/cache timeline components \n\t\t\ttimelineComponents['timelineWrapper'] = timeline.find('.events-wrapper');\n\t\t\ttimelineComponents['eventsWrapper'] = timelineComponents['timelineWrapper'].children('.events');\n\t\t\ttimelineComponents['fillingLine'] = timelineComponents['eventsWrapper'].children('.filling-line');\n\t\t\ttimelineComponents['timelineEvents'] = timelineComponents['eventsWrapper'].find('a');\n\t\t\ttimelineComponents['timelineDates'] = parseDate(timelineComponents['timelineEvents']);\n\t\t\ttimelineComponents['eventsMinLapse'] = minLapse(timelineComponents['timelineDates']);\n\t\t\ttimelineComponents['timelineNavigation'] = timeline.find('.cd-timeline-navigation');\n\t\t\ttimelineComponents['eventsContent'] = timeline.children('.events-content');<\/p>\n<p>\t\t\t\/\/assign a left postion to the single events along the timeline\n\t\t\tsetDatePosition(timelineComponents, eventsMinDistance);\n\t\t\t\/\/assign a width to the timeline\n\t\t\tvar timelineTotWidth = setTimelineWidth(timelineComponents, eventsMinDistance);\n\t\t\t\/\/the timeline has been initialize - show it\n\t\t\ttimeline.addClass('loaded');<\/p>\n<p>\t\t\t\/\/detect click on the next arrow\n\t\t\ttimelineComponents['timelineNavigation'].on('click', '.next', function(event){\n\t\t\t\tevent.preventDefault();\n\t\t\t\tupdateSlide(timelineComponents, timelineTotWidth, 'next');\n\t\t\t});\n\t\t\t\/\/detect click on the prev arrow\n\t\t\ttimelineComponents['timelineNavigation'].on('click', '.prev', function(event){\n\t\t\t\tevent.preventDefault();\n\t\t\t\tupdateSlide(timelineComponents, timelineTotWidth, 'prev');\n\t\t\t});\n\t\t\t\/\/detect click on the a single event - show new event content\n\t\t\ttimelineComponents['eventsWrapper'].on('click', 'a', function(event){\n\t\t\t\tevent.preventDefault();\n\t\t\t\ttimelineComponents['timelineEvents'].removeClass('selected');\n\t\t\t\t$(this).addClass('selected');\n\t\t\t\tupdateOlderEvents($(this));\n\t\t\t\tupdateFilling($(this), timelineComponents['fillingLine'], timelineTotWidth);\n\t\t\t\tupdateVisibleContent($(this), timelineComponents['eventsContent']);\n\t\t\t});<\/p>\n<p>\t\t\t\/\/on swipe, show next\/prev event content\n\t\t\ttimelineComponents['eventsContent'].on('swipeleft', function(){\n\t\t\t\tvar mq = checkMQ();\n\t\t\t\t( mq == 'mobile' ) && showNewContent(timelineComponents, timelineTotWidth, 'next');\n\t\t\t});\n\t\t\ttimelineComponents['eventsContent'].on('swiperight', function(){\n\t\t\t\tvar mq = checkMQ();\n\t\t\t\t( mq == 'mobile' ) && showNewContent(timelineComponents, timelineTotWidth, 'prev');\n\t\t\t});<\/p>\n<p>\t\t\t\/\/keyboard navigation\n\t\t\t$(document).keyup(function(event){\n\t\t\t\tif(event.which=='37' && elementInViewport(timeline.get(0)) ) {\n\t\t\t\t\tshowNewContent(timelineComponents, timelineTotWidth, 'prev');\n\t\t\t\t} else if( event.which=='39' && elementInViewport(timeline.get(0))) {\n\t\t\t\t\tshowNewContent(timelineComponents, timelineTotWidth, 'next');\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}<\/p>\n<p>\tfunction updateSlide(timelineComponents, timelineTotWidth, string) {\n\t\t\/\/retrieve translateX value of timelineComponents['eventsWrapper']\n\t\tvar translateValue = getTranslateValue(timelineComponents['eventsWrapper']),\n\t\t\twrapperWidth = Number(timelineComponents['timelineWrapper'].css('width').replace('px', ''));\n\t\t\/\/translate the timeline to the left('next')\/right('prev') \n\t\t(string == 'next') \n\t\t\t? translateTimeline(timelineComponents, translateValue - wrapperWidth + eventsMinDistance, wrapperWidth - timelineTotWidth)\n\t\t\t: translateTimeline(timelineComponents, translateValue + wrapperWidth - eventsMinDistance);\n\t}<\/p>\n<p>\tfunction showNewContent(timelineComponents, timelineTotWidth, string) {\n\t\t\/\/go from one event to the next\/previous one\n\t\tvar visibleContent =  timelineComponents['eventsContent'].find('.selected'),\n\t\t\tnewContent = ( string == 'next' ) ? visibleContent.next() : visibleContent.prev();<\/p>\n<p>\t\tif ( newContent.length > 0 ) { \/\/if there's a next\/prev event - show it\n\t\t\tvar selectedDate = timelineComponents['eventsWrapper'].find('.selected'),\n\t\t\t\tnewEvent = ( string == 'next' ) ? selectedDate.parent('li').next('li').children('a') : selectedDate.parent('li').prev('li').children('a');<\/p>\n<p>\t\t\tupdateFilling(newEvent, timelineComponents['fillingLine'], timelineTotWidth);\n\t\t\tupdateVisibleContent(newEvent, timelineComponents['eventsContent']);\n\t\t\tnewEvent.addClass('selected');\n\t\t\tselectedDate.removeClass('selected');\n\t\t\tupdateOlderEvents(newEvent);\n\t\t\tupdateTimelinePosition(string, newEvent, timelineComponents, timelineTotWidth);\n\t\t}\n\t}<\/p>\n<p>\tfunction updateTimelinePosition(string, event, timelineComponents, timelineTotWidth) {\n\t\t\/\/translate timeline to the left\/right according to the position of the selected event\n\t\tvar eventStyle = window.getComputedStyle(event.get(0), null),\n\t\t\teventLeft = Number(eventStyle.getPropertyValue(\"left\").replace('px', '')),\n\t\t\ttimelineWidth = Number(timelineComponents['timelineWrapper'].css('width').replace('px', '')),\n\t\t\ttimelineTotWidth = Number(timelineComponents['eventsWrapper'].css('width').replace('px', ''));\n\t\tvar timelineTranslate = getTranslateValue(timelineComponents['eventsWrapper']);<\/p>\n<p>        if( (string == 'next' && eventLeft > timelineWidth - timelineTranslate) || (string == 'prev' && eventLeft < - timelineTranslate) ) { translateTimeline(timelineComponents, - eventLeft + timelineWidth\/2, timelineWidth - timelineTotWidth); } } function translateTimeline(timelineComponents, value, totWidth) { var eventsWrapper = timelineComponents['eventsWrapper'].get(0); value = (value > 0) ? 0 : value; \/\/only negative translate value\n\t\tvalue = ( !(typeof totWidth === 'undefined') &&  value < totWidth ) ? totWidth : value; \/\/do not translate more than timeline width\n\t\tsetTransformValue(eventsWrapper, 'translateX', value+'px');\n\t\t\/\/update navigation arrows visibility\n\t\t(value == 0 ) ? timelineComponents['timelineNavigation'].find('.prev').addClass('inactive') : timelineComponents['timelineNavigation'].find('.prev').removeClass('inactive');\n\t\t(value == totWidth ) ? timelineComponents['timelineNavigation'].find('.next').addClass('inactive') : timelineComponents['timelineNavigation'].find('.next').removeClass('inactive');\n\t}\n\n\tfunction updateFilling(selectedEvent, filling, totWidth) {\n\t\t\/\/change .filling-line length according to the selected event\n\t\tvar eventStyle = window.getComputedStyle(selectedEvent.get(0), null),\n\t\t\teventLeft = eventStyle.getPropertyValue(\"left\"),\n\t\t\teventWidth = eventStyle.getPropertyValue(\"width\");\n\t\teventLeft = Number(eventLeft.replace('px', '')) + Number(eventWidth.replace('px', ''))\/2;\n\t\tvar scaleValue = eventLeft\/totWidth;\n\t\tsetTransformValue(filling.get(0), 'scaleX', scaleValue);\n\t}\n\n\tfunction setDatePosition(timelineComponents, min) {\n\t\tfor (i = 0; i < timelineComponents['timelineDates'].length; i++) { var distance = daydiff(timelineComponents['timelineDates'][0], timelineComponents['timelineDates'][i]), distanceNorm = Math.round(distance\/timelineComponents['eventsMinLapse']) + 2; timelineComponents['timelineEvents'].eq(i).css('left', distanceNorm*min+'px'); } } function setTimelineWidth(timelineComponents, width) { var timeSpan = daydiff(timelineComponents['timelineDates'][0], timelineComponents['timelineDates'][timelineComponents['timelineDates'].length-1]), timeSpanNorm = timeSpan\/timelineComponents['eventsMinLapse'], timeSpanNorm = Math.round(timeSpanNorm) + 4, totalWidth = timeSpanNorm*width; timelineComponents['eventsWrapper'].css('width', totalWidth+'px'); updateFilling(timelineComponents['timelineEvents'].eq(0), timelineComponents['fillingLine'], totalWidth); return totalWidth; } function updateVisibleContent(event, eventsContent) { var eventDate = event.data('date'), visibleContent = eventsContent.find('.selected'), selectedContent = eventsContent.find('[data-date=\"'+ eventDate +'\"]'), selectedContentHeight = selectedContent.height(); if (selectedContent.index() > visibleContent.index()) {\n\t\t\tvar classEnetering = 'selected enter-right',\n\t\t\t\tclassLeaving = 'leave-left';\n\t\t} else {\n\t\t\tvar classEnetering = 'selected enter-left',\n\t\t\t\tclassLeaving = 'leave-right';\n\t\t}<\/p>\n<p>\t\tselectedContent.attr('class', classEnetering);\n\t\tvisibleContent.attr('class', classLeaving).one('webkitAnimationEnd oanimationend msAnimationEnd animationend', function(){\n\t\t\tvisibleContent.removeClass('leave-right leave-left');\n\t\t\tselectedContent.removeClass('enter-left enter-right');\n\t\t});\n\t\teventsContent.css('height', selectedContentHeight+'px');\n\t}<\/p>\n<p>\tfunction updateOlderEvents(event) {\n\t\tevent.parent('li').prevAll('li').children('a').addClass('older-event').end().end().nextAll('li').children('a').removeClass('older-event');\n\t}<\/p>\n<p>\tfunction getTranslateValue(timeline) {\n\t\tvar timelineStyle = window.getComputedStyle(timeline.get(0), null),\n\t\t\ttimelineTranslate = timelineStyle.getPropertyValue(\"-webkit-transform\") ||\n         \t\ttimelineStyle.getPropertyValue(\"-moz-transform\") ||\n         \t\ttimelineStyle.getPropertyValue(\"-ms-transform\") ||\n         \t\ttimelineStyle.getPropertyValue(\"-o-transform\") ||\n         \t\ttimelineStyle.getPropertyValue(\"transform\");<\/p>\n<p>        if( timelineTranslate.indexOf('(') >=0 ) {\n        \tvar timelineTranslate = timelineTranslate.split('(')[1];\n    \t\ttimelineTranslate = timelineTranslate.split(')')[0];\n    \t\ttimelineTranslate = timelineTranslate.split(',');\n    \t\tvar translateValue = timelineTranslate[4];\n        } else {\n        \tvar translateValue = 0;\n        }<\/p>\n<p>        return Number(translateValue);\n\t}<\/p>\n<p>\tfunction setTransformValue(element, property, value) {\n\t\telement.style[\"-webkit-transform\"] = property+\"(\"+value+\")\";\n\t\telement.style[\"-moz-transform\"] = property+\"(\"+value+\")\";\n\t\telement.style[\"-ms-transform\"] = property+\"(\"+value+\")\";\n\t\telement.style[\"-o-transform\"] = property+\"(\"+value+\")\";\n\t\telement.style[\"transform\"] = property+\"(\"+value+\")\";\n\t}<\/p>\n<p>\t\/\/based on http:\/\/stackoverflow.com\/questions\/542938\/how-do-i-get-the-number-of-days-between-two-dates-in-javascript\n\tfunction parseDate(events) {\n\t\tvar dateArrays = [];\n\t\tevents.each(function(){\n\t\t\tvar dateComp = $(this).data('date').split('\/'),\n\t\t\t\tnewDate = new Date(dateComp[2], dateComp[1]-1, dateComp[0]);\n\t\t\tdateArrays.push(newDate);\n\t\t});\n\t    return dateArrays;\n\t}<\/p>\n<p>\tfunction parseDate2(events) {\n\t\tvar dateArrays = [];\n\t\tevents.each(function(){\n\t\t\tvar singleDate = $(this),\n\t\t\t\tdateComp = singleDate.data('date').split('T');\n\t\t\tif( dateComp.length > 1 ) { \/\/both DD\/MM\/YEAR and time are provided\n\t\t\t\tvar dayComp = dateComp[0].split('\/'),\n\t\t\t\t\ttimeComp = dateComp[1].split(':');\n\t\t\t} else if( dateComp[0].indexOf(':') >=0 ) { \/\/only time is provide\n\t\t\t\tvar dayComp = [\"2000\", \"0\", \"0\"],\n\t\t\t\t\ttimeComp = dateComp[0].split(':');\n\t\t\t} else { \/\/only DD\/MM\/YEAR\n\t\t\t\tvar dayComp = dateComp[0].split('\/'),\n\t\t\t\t\ttimeComp = [\"0\", \"0\"];\n\t\t\t}\n\t\t\tvar\tnewDate = new Date(dayComp[2], dayComp[1]-1, dayComp[0], timeComp[0], timeComp[1]);\n\t\t\tdateArrays.push(newDate);\n\t\t});\n\t    return dateArrays;\n\t}<\/p>\n<p>\tfunction daydiff(first, second) {\n\t    return Math.round((second-first));\n\t}<\/p>\n<p>\tfunction minLapse(dates) {\n\t\t\/\/determine the minimum distance among events\n\t\tvar dateDistances = [];\n\t\tfor (i = 1; i < dates.length; i++) { \n\t\t    var distance = daydiff(dates[i-1], dates[i]);\n\t\t    dateDistances.push(distance);\n\t\t}\n\t\treturn Math.min.apply(null, dateDistances);\n\t}\n\n\t\/*\n\t\tHow to tell if a DOM element is visible in the current viewport?\n\t\thttp:\/\/stackoverflow.com\/questions\/123999\/how-to-tell-if-a-dom-element-is-visible-in-the-current-viewport\n\t*\/\n\tfunction elementInViewport(el) {\n\t\tvar top = el.offsetTop;\n\t\tvar left = el.offsetLeft;\n\t\tvar width = el.offsetWidth;\n\t\tvar height = el.offsetHeight;\n\n\t\twhile(el.offsetParent) {\n\t\t    el = el.offsetParent;\n\t\t    top += el.offsetTop;\n\t\t    left += el.offsetLeft;\n\t\t}\n\n\t\treturn (\n\t\t    top < (window.pageYOffset + window.innerHeight) &#038;&#038;\n\t\t    left < (window.pageXOffset + window.innerWidth) &#038;&#038; (top + height) > window.pageYOffset &&\n\t\t    (left + width) > window.pageXOffset\n\t\t);\n\t}<\/p>\n<p>\tfunction checkMQ() {\n\t\t\/\/check if mobile or desktop device\n\t\treturn window.getComputedStyle(document.querySelector('.cd-horizontal-timeline'), '::before').getPropertyValue('content').replace(\/'\/g, \"\").replace(\/\"\/g, \"\");\n\t}\n});<\/script><\/p>\n<p><script>\njQuery(document).ready(function($){<!-- [et_pb_line_break_holder] -->\tvar timelines = $('.cd-horizontal-timeline'),<!-- [et_pb_line_break_holder] -->\t\teventsMinDistance = 60;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t(timelines.length > 0) && initTimeline(timelines);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\tfunction initTimeline(timelines) {<!-- [et_pb_line_break_holder] -->\t\ttimelines.each(function(){<!-- [et_pb_line_break_holder] -->\t\t\tvar timeline = $(this),<!-- [et_pb_line_break_holder] -->\t\t\t\ttimelineComponents = {};<!-- [et_pb_line_break_holder] -->\t\t\t\/\/cache timeline components <!-- [et_pb_line_break_holder] -->\t\t\ttimelineComponents['timelineWrapper'] = timeline.find('.events-wrapper');<!-- [et_pb_line_break_holder] -->\t\t\ttimelineComponents['eventsWrapper'] = timelineComponents['timelineWrapper'].children('.events');<!-- [et_pb_line_break_holder] -->\t\t\ttimelineComponents['fillingLine'] = timelineComponents['eventsWrapper'].children('.filling-line');<!-- [et_pb_line_break_holder] -->\t\t\ttimelineComponents['timelineEvents'] = timelineComponents['eventsWrapper'].find('a');<!-- [et_pb_line_break_holder] -->\t\t\ttimelineComponents['timelineDates'] = parseDate(timelineComponents['timelineEvents']);<!-- [et_pb_line_break_holder] -->\t\t\ttimelineComponents['eventsMinLapse'] = minLapse(timelineComponents['timelineDates']);<!-- [et_pb_line_break_holder] -->\t\t\ttimelineComponents['timelineNavigation'] = timeline.find('.cd-timeline-navigation');<!-- [et_pb_line_break_holder] -->\t\t\ttimelineComponents['eventsContent'] = timeline.children('.events-content');<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\t\t\/\/assign a left postion to the single events along the timeline<!-- [et_pb_line_break_holder] -->\t\t\tsetDatePosition(timelineComponents, eventsMinDistance);<!-- [et_pb_line_break_holder] -->\t\t\t\/\/assign a width to the timeline<!-- [et_pb_line_break_holder] -->\t\t\tvar timelineTotWidth = setTimelineWidth(timelineComponents, eventsMinDistance);<!-- [et_pb_line_break_holder] -->\t\t\t\/\/the timeline has been initialize - show it<!-- [et_pb_line_break_holder] -->\t\t\ttimeline.addClass('loaded');<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\t\t\/\/detect click on the next arrow<!-- [et_pb_line_break_holder] -->\t\t\ttimelineComponents['timelineNavigation'].on('click', '.next', function(event){<!-- [et_pb_line_break_holder] -->\t\t\t\tevent.preventDefault();<!-- [et_pb_line_break_holder] -->\t\t\t\tupdateSlide(timelineComponents, timelineTotWidth, 'next');<!-- [et_pb_line_break_holder] -->\t\t\t});<!-- [et_pb_line_break_holder] -->\t\t\t\/\/detect click on the prev arrow<!-- [et_pb_line_break_holder] -->\t\t\ttimelineComponents['timelineNavigation'].on('click', '.prev', function(event){<!-- [et_pb_line_break_holder] -->\t\t\t\tevent.preventDefault();<!-- [et_pb_line_break_holder] -->\t\t\t\tupdateSlide(timelineComponents, timelineTotWidth, 'prev');<!-- [et_pb_line_break_holder] -->\t\t\t});<!-- [et_pb_line_break_holder] -->\t\t\t\/\/detect click on the a single event - show new event content<!-- [et_pb_line_break_holder] -->\t\t\ttimelineComponents['eventsWrapper'].on('click', 'a', function(event){<!-- [et_pb_line_break_holder] -->\t\t\t\tevent.preventDefault();<!-- [et_pb_line_break_holder] -->\t\t\t\ttimelineComponents['timelineEvents'].removeClass('selected');<!-- [et_pb_line_break_holder] -->\t\t\t\t$(this).addClass('selected');<!-- [et_pb_line_break_holder] -->\t\t\t\tupdateOlderEvents($(this));<!-- [et_pb_line_break_holder] -->\t\t\t\tupdateFilling($(this), timelineComponents['fillingLine'], timelineTotWidth);<!-- [et_pb_line_break_holder] -->\t\t\t\tupdateVisibleContent($(this), timelineComponents['eventsContent']);<!-- [et_pb_line_break_holder] -->\t\t\t});<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\t\t\/\/on swipe, show next\/prev event content<!-- [et_pb_line_break_holder] -->\t\t\ttimelineComponents['eventsContent'].on('swipeleft', function(){<!-- [et_pb_line_break_holder] -->\t\t\t\tvar mq = checkMQ();<!-- [et_pb_line_break_holder] -->\t\t\t\t( mq == 'mobile' ) && showNewContent(timelineComponents, timelineTotWidth, 'next');<!-- [et_pb_line_break_holder] -->\t\t\t});<!-- [et_pb_line_break_holder] -->\t\t\ttimelineComponents['eventsContent'].on('swiperight', function(){<!-- [et_pb_line_break_holder] -->\t\t\t\tvar mq = checkMQ();<!-- [et_pb_line_break_holder] -->\t\t\t\t( mq == 'mobile' ) && showNewContent(timelineComponents, timelineTotWidth, 'prev');<!-- [et_pb_line_break_holder] -->\t\t\t});<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\t\t\/\/keyboard navigation<!-- [et_pb_line_break_holder] -->\t\t\t$(document).keyup(function(event){<!-- [et_pb_line_break_holder] -->\t\t\t\tif(event.which=='37' && elementInViewport(timeline.get(0)) ) {<!-- [et_pb_line_break_holder] -->\t\t\t\t\tshowNewContent(timelineComponents, timelineTotWidth, 'prev');<!-- [et_pb_line_break_holder] -->\t\t\t\t} else if( event.which=='39' && elementInViewport(timeline.get(0))) {<!-- [et_pb_line_break_holder] -->\t\t\t\t\tshowNewContent(timelineComponents, timelineTotWidth, 'next');<!-- [et_pb_line_break_holder] -->\t\t\t\t}<!-- [et_pb_line_break_holder] -->\t\t\t});<!-- [et_pb_line_break_holder] -->\t\t});<!-- [et_pb_line_break_holder] -->\t}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\tfunction updateSlide(timelineComponents, timelineTotWidth, string) {<!-- [et_pb_line_break_holder] -->\t\t\/\/retrieve translateX value of timelineComponents['eventsWrapper']<!-- [et_pb_line_break_holder] -->\t\tvar translateValue = getTranslateValue(timelineComponents['eventsWrapper']),<!-- [et_pb_line_break_holder] -->\t\t\twrapperWidth = Number(timelineComponents['timelineWrapper'].css('width').replace('px', ''));<!-- [et_pb_line_break_holder] -->\t\t\/\/translate the timeline to the left('next')\/right('prev') <!-- [et_pb_line_break_holder] -->\t\t(string == 'next') <!-- [et_pb_line_break_holder] -->\t\t\t? translateTimeline(timelineComponents, translateValue - wrapperWidth + eventsMinDistance, wrapperWidth - timelineTotWidth)<!-- [et_pb_line_break_holder] -->\t\t\t: translateTimeline(timelineComponents, translateValue + wrapperWidth - eventsMinDistance);<!-- [et_pb_line_break_holder] -->\t}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\tfunction showNewContent(timelineComponents, timelineTotWidth, string) {<!-- [et_pb_line_break_holder] -->\t\t\/\/go from one event to the next\/previous one<!-- [et_pb_line_break_holder] -->\t\tvar visibleContent =  timelineComponents['eventsContent'].find('.selected'),<!-- [et_pb_line_break_holder] -->\t\t\tnewContent = ( string == 'next' ) ? visibleContent.next() : visibleContent.prev();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\tif ( newContent.length > 0 ) { \/\/if there's a next\/prev event - show it<!-- [et_pb_line_break_holder] -->\t\t\tvar selectedDate = timelineComponents['eventsWrapper'].find('.selected'),<!-- [et_pb_line_break_holder] -->\t\t\t\tnewEvent = ( string == 'next' ) ? selectedDate.parent('li').next('li').children('a') : selectedDate.parent('li').prev('li').children('a');<!-- [et_pb_line_break_holder] -->\t\t\t<!-- [et_pb_line_break_holder] -->\t\t\tupdateFilling(newEvent, timelineComponents['fillingLine'], timelineTotWidth);<!-- [et_pb_line_break_holder] -->\t\t\tupdateVisibleContent(newEvent, timelineComponents['eventsContent']);<!-- [et_pb_line_break_holder] -->\t\t\tnewEvent.addClass('selected');<!-- [et_pb_line_break_holder] -->\t\t\tselectedDate.removeClass('selected');<!-- [et_pb_line_break_holder] -->\t\t\tupdateOlderEvents(newEvent);<!-- [et_pb_line_break_holder] -->\t\t\tupdateTimelinePosition(string, newEvent, timelineComponents, timelineTotWidth);<!-- [et_pb_line_break_holder] -->\t\t}<!-- [et_pb_line_break_holder] -->\t}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\tfunction updateTimelinePosition(string, event, timelineComponents, timelineTotWidth) {<!-- [et_pb_line_break_holder] -->\t\t\/\/translate timeline to the left\/right according to the position of the selected event<!-- [et_pb_line_break_holder] -->\t\tvar eventStyle = window.getComputedStyle(event.get(0), null),<!-- [et_pb_line_break_holder] -->\t\t\teventLeft = Number(eventStyle.getPropertyValue(\"left\").replace('px', '')),<!-- [et_pb_line_break_holder] -->\t\t\ttimelineWidth = Number(timelineComponents['timelineWrapper'].css('width').replace('px', '')),<!-- [et_pb_line_break_holder] -->\t\t\ttimelineTotWidth = Number(timelineComponents['eventsWrapper'].css('width').replace('px', ''));<!-- [et_pb_line_break_holder] -->\t\tvar timelineTranslate = getTranslateValue(timelineComponents['eventsWrapper']);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        if( (string == 'next' && eventLeft > timelineWidth - timelineTranslate) || (string == 'prev' && eventLeft < - timelineTranslate) ) {<!-- [et_pb_line_break_holder] -->        \ttranslateTimeline(timelineComponents, - eventLeft + timelineWidth\/2, timelineWidth - timelineTotWidth);<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->\t}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\tfunction translateTimeline(timelineComponents, value, totWidth) {<!-- [et_pb_line_break_holder] -->\t\tvar eventsWrapper = timelineComponents['eventsWrapper'].get(0);<!-- [et_pb_line_break_holder] -->\t\tvalue = (value > 0) ? 0 : value; \/\/only negative translate value<!-- [et_pb_line_break_holder] -->\t\tvalue = ( !(typeof totWidth === 'undefined') &&  value < totWidth ) ? totWidth : value; \/\/do not translate more than timeline width<!-- [et_pb_line_break_holder] -->\t\tsetTransformValue(eventsWrapper, 'translateX', value+'px');<!-- [et_pb_line_break_holder] -->\t\t\/\/update navigation arrows visibility<!-- [et_pb_line_break_holder] -->\t\t(value == 0 ) ? timelineComponents['timelineNavigation'].find('.prev').addClass('inactive') : timelineComponents['timelineNavigation'].find('.prev').removeClass('inactive');<!-- [et_pb_line_break_holder] -->\t\t(value == totWidth ) ? timelineComponents['timelineNavigation'].find('.next').addClass('inactive') : timelineComponents['timelineNavigation'].find('.next').removeClass('inactive');<!-- [et_pb_line_break_holder] -->\t}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\tfunction updateFilling(selectedEvent, filling, totWidth) {<!-- [et_pb_line_break_holder] -->\t\t\/\/change .filling-line length according to the selected event<!-- [et_pb_line_break_holder] -->\t\tvar eventStyle = window.getComputedStyle(selectedEvent.get(0), null),<!-- [et_pb_line_break_holder] -->\t\t\teventLeft = eventStyle.getPropertyValue(\"left\"),<!-- [et_pb_line_break_holder] -->\t\t\teventWidth = eventStyle.getPropertyValue(\"width\");<!-- [et_pb_line_break_holder] -->\t\teventLeft = Number(eventLeft.replace('px', '')) + Number(eventWidth.replace('px', ''))\/2;<!-- [et_pb_line_break_holder] -->\t\tvar scaleValue = eventLeft\/totWidth;<!-- [et_pb_line_break_holder] -->\t\tsetTransformValue(filling.get(0), 'scaleX', scaleValue);<!-- [et_pb_line_break_holder] -->\t}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\tfunction setDatePosition(timelineComponents, min) {<!-- [et_pb_line_break_holder] -->\t\tfor (i = 0; i < timelineComponents['timelineDates'].length; i++) { <!-- [et_pb_line_break_holder] -->\t\t    var distance = daydiff(timelineComponents['timelineDates'][0], timelineComponents['timelineDates'][i]),<!-- [et_pb_line_break_holder] -->\t\t    \tdistanceNorm = Math.round(distance\/timelineComponents['eventsMinLapse']) + 2;<!-- [et_pb_line_break_holder] -->\t\t    timelineComponents['timelineEvents'].eq(i).css('left', distanceNorm*min+'px');<!-- [et_pb_line_break_holder] -->\t\t}<!-- [et_pb_line_break_holder] -->\t}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\tfunction setTimelineWidth(timelineComponents, width) {<!-- [et_pb_line_break_holder] -->\t\tvar timeSpan = daydiff(timelineComponents['timelineDates'][0], timelineComponents['timelineDates'][timelineComponents['timelineDates'].length-1]),<!-- [et_pb_line_break_holder] -->\t\t\ttimeSpanNorm = timeSpan\/timelineComponents['eventsMinLapse'],<!-- [et_pb_line_break_holder] -->\t\t\ttimeSpanNorm = Math.round(timeSpanNorm) + 4,<!-- [et_pb_line_break_holder] -->\t\t\ttotalWidth = timeSpanNorm*width;<!-- [et_pb_line_break_holder] -->\t\ttimelineComponents['eventsWrapper'].css('width', totalWidth+'px');<!-- [et_pb_line_break_holder] -->\t\tupdateFilling(timelineComponents['timelineEvents'].eq(0), timelineComponents['fillingLine'], totalWidth);<!-- [et_pb_line_break_holder] -->\t<!-- [et_pb_line_break_holder] -->\t\treturn totalWidth;<!-- [et_pb_line_break_holder] -->\t}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\tfunction updateVisibleContent(event, eventsContent) {<!-- [et_pb_line_break_holder] -->\t\tvar eventDate = event.data('date'),<!-- [et_pb_line_break_holder] -->\t\t\tvisibleContent = eventsContent.find('.selected'),<!-- [et_pb_line_break_holder] -->\t\t\tselectedContent = eventsContent.find('[data-date=\"'+ eventDate +'\"]'),<!-- [et_pb_line_break_holder] -->\t\t\tselectedContentHeight = selectedContent.height();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\tif (selectedContent.index() > visibleContent.index()) {<!-- [et_pb_line_break_holder] -->\t\t\tvar classEnetering = 'selected enter-right',<!-- [et_pb_line_break_holder] -->\t\t\t\tclassLeaving = 'leave-left';<!-- [et_pb_line_break_holder] -->\t\t} else {<!-- [et_pb_line_break_holder] -->\t\t\tvar classEnetering = 'selected enter-left',<!-- [et_pb_line_break_holder] -->\t\t\t\tclassLeaving = 'leave-right';<!-- [et_pb_line_break_holder] -->\t\t}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\tselectedContent.attr('class', classEnetering);<!-- [et_pb_line_break_holder] -->\t\tvisibleContent.attr('class', classLeaving).one('webkitAnimationEnd oanimationend msAnimationEnd animationend', function(){<!-- [et_pb_line_break_holder] -->\t\t\tvisibleContent.removeClass('leave-right leave-left');<!-- [et_pb_line_break_holder] -->\t\t\tselectedContent.removeClass('enter-left enter-right');<!-- [et_pb_line_break_holder] -->\t\t});<!-- [et_pb_line_break_holder] -->\t\teventsContent.css('height', selectedContentHeight+'px');<!-- [et_pb_line_break_holder] -->\t}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\tfunction updateOlderEvents(event) {<!-- [et_pb_line_break_holder] -->\t\tevent.parent('li').prevAll('li').children('a').addClass('older-event').end().end().nextAll('li').children('a').removeClass('older-event');<!-- [et_pb_line_break_holder] -->\t}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\tfunction getTranslateValue(timeline) {<!-- [et_pb_line_break_holder] -->\t\tvar timelineStyle = window.getComputedStyle(timeline.get(0), null),<!-- [et_pb_line_break_holder] -->\t\t\ttimelineTranslate = timelineStyle.getPropertyValue(\"-webkit-transform\") ||<!-- [et_pb_line_break_holder] -->         \t\ttimelineStyle.getPropertyValue(\"-moz-transform\") ||<!-- [et_pb_line_break_holder] -->         \t\ttimelineStyle.getPropertyValue(\"-ms-transform\") ||<!-- [et_pb_line_break_holder] -->         \t\ttimelineStyle.getPropertyValue(\"-o-transform\") ||<!-- [et_pb_line_break_holder] -->         \t\ttimelineStyle.getPropertyValue(\"transform\");<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        if( timelineTranslate.indexOf('(') >=0 ) {<!-- [et_pb_line_break_holder] -->        \tvar timelineTranslate = timelineTranslate.split('(')[1];<!-- [et_pb_line_break_holder] -->    \t\ttimelineTranslate = timelineTranslate.split(')')[0];<!-- [et_pb_line_break_holder] -->    \t\ttimelineTranslate = timelineTranslate.split(',');<!-- [et_pb_line_break_holder] -->    \t\tvar translateValue = timelineTranslate[4];<!-- [et_pb_line_break_holder] -->        } else {<!-- [et_pb_line_break_holder] -->        \tvar translateValue = 0;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        return Number(translateValue);<!-- [et_pb_line_break_holder] -->\t}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\tfunction setTransformValue(element, property, value) {<!-- [et_pb_line_break_holder] -->\t\telement.style[\"-webkit-transform\"] = property+\"(\"+value+\")\";<!-- [et_pb_line_break_holder] -->\t\telement.style[\"-moz-transform\"] = property+\"(\"+value+\")\";<!-- [et_pb_line_break_holder] -->\t\telement.style[\"-ms-transform\"] = property+\"(\"+value+\")\";<!-- [et_pb_line_break_holder] -->\t\telement.style[\"-o-transform\"] = property+\"(\"+value+\")\";<!-- [et_pb_line_break_holder] -->\t\telement.style[\"transform\"] = property+\"(\"+value+\")\";<!-- [et_pb_line_break_holder] -->\t}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\/\/based on http:\/\/stackoverflow.com\/questions\/542938\/how-do-i-get-the-number-of-days-between-two-dates-in-javascript<!-- [et_pb_line_break_holder] -->\tfunction parseDate(events) {<!-- [et_pb_line_break_holder] -->\t\tvar dateArrays = [];<!-- [et_pb_line_break_holder] -->\t\tevents.each(function(){<!-- [et_pb_line_break_holder] -->\t\t\tvar dateComp = $(this).data('date').split('\/'),<!-- [et_pb_line_break_holder] -->\t\t\t\tnewDate = new Date(dateComp[2], dateComp[1]-1, dateComp[0]);<!-- [et_pb_line_break_holder] -->\t\t\tdateArrays.push(newDate);<!-- [et_pb_line_break_holder] -->\t\t});<!-- [et_pb_line_break_holder] -->\t    return dateArrays;<!-- [et_pb_line_break_holder] -->\t}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\tfunction parseDate2(events) {<!-- [et_pb_line_break_holder] -->\t\tvar dateArrays = [];<!-- [et_pb_line_break_holder] -->\t\tevents.each(function(){<!-- [et_pb_line_break_holder] -->\t\t\tvar singleDate = $(this),<!-- [et_pb_line_break_holder] -->\t\t\t\tdateComp = singleDate.data('date').split('T');<!-- [et_pb_line_break_holder] -->\t\t\tif( dateComp.length > 1 ) { \/\/both DD\/MM\/YEAR and time are provided<!-- [et_pb_line_break_holder] -->\t\t\t\tvar dayComp = dateComp[0].split('\/'),<!-- [et_pb_line_break_holder] -->\t\t\t\t\ttimeComp = dateComp[1].split(':');<!-- [et_pb_line_break_holder] -->\t\t\t} else if( dateComp[0].indexOf(':') >=0 ) { \/\/only time is provide<!-- [et_pb_line_break_holder] -->\t\t\t\tvar dayComp = [\"2000\", \"0\", \"0\"],<!-- [et_pb_line_break_holder] -->\t\t\t\t\ttimeComp = dateComp[0].split(':');<!-- [et_pb_line_break_holder] -->\t\t\t} else { \/\/only DD\/MM\/YEAR<!-- [et_pb_line_break_holder] -->\t\t\t\tvar dayComp = dateComp[0].split('\/'),<!-- [et_pb_line_break_holder] -->\t\t\t\t\ttimeComp = [\"0\", \"0\"];<!-- [et_pb_line_break_holder] -->\t\t\t}<!-- [et_pb_line_break_holder] -->\t\t\tvar\tnewDate = new Date(dayComp[2], dayComp[1]-1, dayComp[0], timeComp[0], timeComp[1]);<!-- [et_pb_line_break_holder] -->\t\t\tdateArrays.push(newDate);<!-- [et_pb_line_break_holder] -->\t\t});<!-- [et_pb_line_break_holder] -->\t    return dateArrays;<!-- [et_pb_line_break_holder] -->\t}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\tfunction daydiff(first, second) {<!-- [et_pb_line_break_holder] -->\t    return Math.round((second-first));<!-- [et_pb_line_break_holder] -->\t}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\tfunction minLapse(dates) {<!-- [et_pb_line_break_holder] -->\t\t\/\/determine the minimum distance among events<!-- [et_pb_line_break_holder] -->\t\tvar dateDistances = [];<!-- [et_pb_line_break_holder] -->\t\tfor (i = 1; i < dates.length; i++) { <!-- [et_pb_line_break_holder] -->\t\t    var distance = daydiff(dates[i-1], dates[i]);<!-- [et_pb_line_break_holder] -->\t\t    dateDistances.push(distance);<!-- [et_pb_line_break_holder] -->\t\t}<!-- [et_pb_line_break_holder] -->\t\treturn Math.min.apply(null, dateDistances);<!-- [et_pb_line_break_holder] -->\t}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\/*<!-- [et_pb_line_break_holder] -->\t\tHow to tell if a DOM element is visible in the current viewport?<!-- [et_pb_line_break_holder] -->\t\thttp:\/\/stackoverflow.com\/questions\/123999\/how-to-tell-if-a-dom-element-is-visible-in-the-current-viewport<!-- [et_pb_line_break_holder] -->\t*\/<!-- [et_pb_line_break_holder] -->\tfunction elementInViewport(el) {<!-- [et_pb_line_break_holder] -->\t\tvar top = el.offsetTop;<!-- [et_pb_line_break_holder] -->\t\tvar left = el.offsetLeft;<!-- [et_pb_line_break_holder] -->\t\tvar width = el.offsetWidth;<!-- [et_pb_line_break_holder] -->\t\tvar height = el.offsetHeight;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\twhile(el.offsetParent) {<!-- [et_pb_line_break_holder] -->\t\t    el = el.offsetParent;<!-- [et_pb_line_break_holder] -->\t\t    top += el.offsetTop;<!-- [et_pb_line_break_holder] -->\t\t    left += el.offsetLeft;<!-- [et_pb_line_break_holder] -->\t\t}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\treturn (<!-- [et_pb_line_break_holder] -->\t\t    top < (window.pageYOffset + window.innerHeight) &#038;&#038;<!-- [et_pb_line_break_holder] -->\t\t    left < (window.pageXOffset + window.innerWidth) &#038;&#038;<!-- [et_pb_line_break_holder] -->\t\t    (top + height) > window.pageYOffset &&<!-- [et_pb_line_break_holder] -->\t\t    (left + width) > window.pageXOffset<!-- [et_pb_line_break_holder] -->\t\t);<!-- [et_pb_line_break_holder] -->\t}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\tfunction checkMQ() {<!-- [et_pb_line_break_holder] -->\t\t\/\/check if mobile or desktop device<!-- [et_pb_line_break_holder] -->\t\treturn window.getComputedStyle(document.querySelector('.cd-horizontal-timeline'), '::before').getPropertyValue('content').replace(\/'\/g, \"\").replace(\/\"\/g, \"\");<!-- [et_pb_line_break_holder] -->\t}<!-- [et_pb_line_break_holder] -->});\n<\/script><\/p>\n<p>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section]<br \/>\n[et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#FFFFFF&#8221; custom_padding=&#8221;||0px||false|false&#8221; background_image=&#8221;https:\/\/www.3p-france.com\/wp-content\/uploads\/2021\/09\/pixel-grid.png&#8221; background_size=&#8221;initial&#8221; background_repeat=&#8221;repeat&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row column_structure=&#8221;1_3,2_3&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;||5px||false|false&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text admin_label=&#8221;Titre H2&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;Poppins|700|||||||&#8221; text_text_color=&#8221;#3AA2DB&#8221; header_2_text_align=&#8221;right&#8221; text_orientation=&#8221;right&#8221; header_2_text_align_tablet=&#8221;&#8221; header_2_text_align_phone=&#8221;center&#8221; header_2_text_align_last_edited=&#8221;on|phone&#8221; text_orientation_tablet=&#8221;&#8221; text_orientation_phone=&#8221;center&#8221; text_orientation_last_edited=&#8221;on|phone&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h2>How does 3P France function?<\/h2>\n<p>Cemadroid certified products[\/et_pb_text][et_pb_image src=&#8221;https:\/\/www.3p-france.com\/wp-content\/uploads\/2021\/09\/Logo-Cemafroid.png&#8221; title_text=&#8221;Logo-Cemafroid&#8221; align=&#8221;right&#8221; align_tablet=&#8221;&#8221; align_phone=&#8221;center&#8221; align_last_edited=&#8221;on|desktop&#8221; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_image][\/et_pb_column][et_pb_column type=&#8221;2_3&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]From the transporter to the distributor to the end customer, you will find an answer to every situation within our product ranges.<br \/>\nThe isothermal performance of our products is <strong>systematically tested<\/strong> by an external laboratory &nbsp;<a href=\"http:\/\/www.cemafroid.fr\/\" target=\"_blank\" rel=\"noopener\">Cemafroid<\/a>.<\/p>\n<p>It should be noted that we claim the best quality\/price ratio for each of our products: isothermal performance, food contact, recyclability, reusability, durability and eco-design.<\/p>\n<p><div class='et-learn-more clearfix'>\n\t\t\t\t\t<h3 class='heading-more'>Learn more<span class='et_learnmore_arrow'><span><\/span><\/span><\/h3>\n\t\t\t\t\t<div class='learn-more-content'>In addition, all our products are <strong>reusable<\/strong> and manufactured according to strict specifications to reduce the environmental impact.<\/p>\n<p>Finally, our organisation is based on <strong>long-standing relationships with reliable partners<\/strong> in Europe and Asia. These partners are chosen according to their quality, reliability and reactivity. Each one has been selected through an audit carried out by an independent quality control specialist.<\/p><\/div>\n\t\t\t\t<\/div>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#F4F4F4&#8243; global_colors_info=&#8221;{}&#8221;][et_pb_row column_structure=&#8221;1_3,2_3&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;||50px||false|false&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text admin_label=&#8221;Titre H2&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;Poppins|700|||||||&#8221; text_text_color=&#8221;#3AA2DB&#8221; header_2_text_align=&#8221;right&#8221; text_orientation=&#8221;right&#8221; header_2_text_align_tablet=&#8221;&#8221; header_2_text_align_phone=&#8221;center&#8221; header_2_text_align_last_edited=&#8221;on|phone&#8221; text_orientation_tablet=&#8221;&#8221; text_orientation_phone=&#8221;center&#8221; text_orientation_last_edited=&#8221;on|phone&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h2>Why choose 3P France?<\/h2>\n<p>Thermal insulation specialist since 1987[\/et_pb_text][\/et_pb_column][et_pb_column type=&#8221;2_3&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]At 3P France, we believe that our corporate culture and values are our greatest assets. We place quality, efficiency, reliability, adaptability and originality at the heart of everything we do. These values accompany us on a daily basis in the achievement of our ambitions.[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=&#8221;1_4,1_4,1_4,1_4&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; max_width=&#8221;80%&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;1_4&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#FFFFFF&#8221; custom_padding=&#8221;||||false|false&#8221; border_radii=&#8221;on|10px|10px|10px|10px&#8221; box_shadow_style=&#8221;preset3&#8243; global_colors_info=&#8221;{}&#8221;][et_pb_image src=&#8221;https:\/\/www.3p-france.com\/wp-content\/uploads\/2021\/09\/reactivite.jpg&#8221; title_text=&#8221;reactivite&#8221; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; custom_margin=&#8221;||0px||false|false&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_image][et_pb_blurb title=&#8221;Reactivity&#8221; admin_label=&#8221;R\u00e9activit\u00e9&#8221; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; header_level=&#8221;h3&#8243; header_font_size=&#8221;20px&#8221; body_line_height=&#8221;1.5em&#8221; text_orientation=&#8221;center&#8221; custom_padding=&#8221;15px|15px|15px|15px|false|false&#8221; global_colors_info=&#8221;{}&#8221;]Customer requests quotes within 48 hours.[\/et_pb_blurb][\/et_pb_column][et_pb_column type=&#8221;1_4&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#FFFFFF&#8221; custom_padding=&#8221;||||false|false&#8221; border_radii=&#8221;on|10px|10px|10px|10px&#8221; box_shadow_style=&#8221;preset3&#8243; global_colors_info=&#8221;{}&#8221;][et_pb_image src=&#8221;https:\/\/www.3p-france.com\/wp-content\/uploads\/2021\/09\/06I0547-COMBITHERM.jpg&#8221; title_text=&#8221;_06I0547 COMBITHERM&#8221; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; custom_margin=&#8221;||0px||false|false&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_image][et_pb_blurb title=&#8221;Precision&#8221; admin_label=&#8221;Pr\u00e9cision&#8221; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; header_level=&#8221;h3&#8243; header_font_size=&#8221;20px&#8221; body_line_height=&#8221;1.5em&#8221; text_orientation=&#8221;center&#8221; custom_padding=&#8221;15px|15px|15px|15px|false|false&#8221; global_colors_info=&#8221;{}&#8221;]Our proposals are always based on a review of the customer&#8217;s requirements and the establishment of the most appropriate specifications.<br \/>\n3P France systematically makes mock-ups or prototypes to validate the projects (possibility of sampling products before any order).[\/et_pb_blurb][\/et_pb_column][et_pb_column type=&#8221;1_4&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#FFFFFF&#8221; custom_padding=&#8221;||||false|false&#8221; border_radii=&#8221;on|10px|10px|10px|10px&#8221; box_shadow_style=&#8221;preset3&#8243; global_colors_info=&#8221;{}&#8221;][et_pb_image src=&#8221;https:\/\/www.3p-france.com\/wp-content\/uploads\/2021\/09\/diversite.jpg&#8221; title_text=&#8221;diversite&#8221; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; custom_margin=&#8221;||0px||false|false&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_image][et_pb_blurb title=&#8221;Diversity&#8221; admin_label=&#8221;Diversit\u00e9&#8221; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; header_level=&#8221;h3&#8243; header_font_size=&#8221;20px&#8221; body_line_height=&#8221;1.5em&#8221; text_orientation=&#8221;center&#8221; custom_padding=&#8221;15px|15px|15px|15px|false|false&#8221; global_colors_info=&#8221;{}&#8221;]Our wide range of products and their technical characteristics allow us to meet our customers&#8217; expectations while respecting their budget.[\/et_pb_blurb][\/et_pb_column][et_pb_column type=&#8221;1_4&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#FFFFFF&#8221; custom_padding=&#8221;||||false|false&#8221; border_radii=&#8221;on|10px|10px|10px|10px&#8221; box_shadow_style=&#8221;preset3&#8243; global_colors_info=&#8221;{}&#8221;][et_pb_image src=&#8221;https:\/\/www.3p-france.com\/wp-content\/uploads\/2021\/09\/qualite.jpg&#8221; title_text=&#8221;qualite&#8221; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; custom_margin=&#8221;||0px||false|false&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_image][et_pb_blurb title=&#8221;Quality&#8221; admin_label=&#8221;Qualit\u00e9&#8221; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; header_level=&#8221;h3&#8243; header_font_size=&#8221;20px&#8221; body_line_height=&#8221;1.5em&#8221; text_orientation=&#8221;center&#8221; custom_padding=&#8221;15px|15px|15px|15px|false|false&#8221; global_colors_info=&#8221;{}&#8221;]The quality of our products meet the highest standards and their proven perfomances are certified. We have a loyal customer base and rely solely on long-term partnerships.<br \/>\nWe offer sales supports for our point-of-sale partners.[\/et_pb_blurb][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; background_image=&#8221;https:\/\/www.3p-france.com\/wp-content\/uploads\/2021\/09\/pixel-grid.png&#8221; background_size=&#8221;initial&#8221; background_repeat=&#8221;repeat&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row column_structure=&#8221;1_3,2_3&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;||50px||false|false&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text admin_label=&#8221;Titre H2&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;Poppins|700|||||||&#8221; text_text_color=&#8221;#3AA2DB&#8221; header_2_text_align=&#8221;right&#8221; text_orientation=&#8221;right&#8221; header_2_text_align_tablet=&#8221;&#8221; header_2_text_align_phone=&#8221;center&#8221; header_2_text_align_last_edited=&#8221;on|phone&#8221; text_orientation_tablet=&#8221;&#8221; text_orientation_phone=&#8221;center&#8221; text_orientation_last_edited=&#8221;on|phone&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h2>3P France&#8217;s values<\/h2>\n<p>Discover our 5 key values.[\/et_pb_text][\/et_pb_column][et_pb_column type=&#8221;2_3&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]We place quality, efficiency, reliability, adaptability and originality at the heart of everything we do. These values accompany us on a daily basis to best serve our customers&#8217; interests.[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=&#8221;1_5,1_5,1_5,1_5,1_5&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;1_5&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_blurb image=&#8221;https:\/\/www.3p-france.com\/wp-content\/uploads\/2021\/09\/qualite2.png&#8221; image_max_width=&#8221;50%&#8221; admin_label=&#8221;Quality&#8221; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; body_font=&#8221;Poppins||||||||&#8221; text_orientation=&#8221;center&#8221; global_colors_info=&#8221;{}&#8221;]Qualit\u00e9[\/et_pb_blurb][\/et_pb_column][et_pb_column type=&#8221;1_5&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_blurb image=&#8221;https:\/\/www.3p-france.com\/wp-content\/uploads\/2021\/09\/reactif.png&#8221; image_max_width=&#8221;50%&#8221; admin_label=&#8221;Efficiency&#8221; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; body_font=&#8221;Poppins||||||||&#8221; text_orientation=&#8221;center&#8221; global_colors_info=&#8221;{}&#8221;]Efficacit\u00e9[\/et_pb_blurb][\/et_pb_column][et_pb_column type=&#8221;1_5&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_blurb image=&#8221;https:\/\/www.3p-france.com\/wp-content\/uploads\/2021\/09\/serieux.png&#8221; image_max_width=&#8221;50%&#8221; admin_label=&#8221;Reliability&#8221; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; body_font=&#8221;Poppins||||||||&#8221; text_orientation=&#8221;center&#8221; global_colors_info=&#8221;{}&#8221;]S\u00e9rieux[\/et_pb_blurb][\/et_pb_column][et_pb_column type=&#8221;1_5&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_blurb image=&#8221;https:\/\/www.3p-france.com\/wp-content\/uploads\/2021\/09\/size.png&#8221; image_max_width=&#8221;50%&#8221; admin_label=&#8221;Adaptability&#8221; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; body_font=&#8221;Poppins||||||||&#8221; text_orientation=&#8221;center&#8221; global_colors_info=&#8221;{}&#8221;]Adaptabilit\u00e9[\/et_pb_blurb][\/et_pb_column][et_pb_column type=&#8221;1_5&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_blurb image=&#8221;https:\/\/www.3p-france.com\/wp-content\/uploads\/2021\/09\/original.png&#8221; image_max_width=&#8221;50%&#8221; admin_label=&#8221;Originality&#8221; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; body_font=&#8221;Poppins||||||||&#8221; text_orientation=&#8221;center&#8221; global_colors_info=&#8221;{}&#8221;]Originalit\u00e9[\/et_pb_blurb][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; module_id=&#8221;temoignages&#8221; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; background_enable_color=&#8221;off&#8221; background_image=&#8221;https:\/\/www.3p-france.com\/wp-content\/uploads\/2021\/09\/devis.jpg&#8221; background_size=&#8221;initial&#8221; background_position=&#8221;bottom_center&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;||50px||false|false&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text admin_label=&#8221;Titre H2&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;Poppins|700|||||||&#8221; text_text_color=&#8221;#3AA2DB&#8221; header_2_text_align=&#8221;center&#8221; text_orientation=&#8221;center&#8221; header_2_text_align_tablet=&#8221;&#8221; header_2_text_align_phone=&#8221;center&#8221; header_2_text_align_last_edited=&#8221;on|desktop&#8221; text_orientation_tablet=&#8221;&#8221; text_orientation_phone=&#8221;center&#8221; text_orientation_last_edited=&#8221;on|phone&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h2>They trust us, why not you?<\/h2>\n<p>They share their experiences.[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=&#8221;1_3,1_3,1_3&#8243; use_custom_gutter=&#8221;on&#8221; gutter_width=&#8221;2&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; width=&#8221;90%&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;||||false|false&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_testimonial author=&#8221;Samira&#8221; job_title=&#8221;Purchasing manager in a marketing and object communication company&#8221; quote_icon=&#8221;off&#8221; quote_icon_color=&#8221;#3AA2DB&#8221; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; body_font=&#8221;||||||||&#8221; author_font=&#8221;Poppins|700|||||||&#8221; author_text_color=&#8221;#063843&#8243; position_text_color=&#8221;#3AA2DB&#8221; position_font_size=&#8221;13px&#8221; position_line_height=&#8221;14px&#8221; company_font=&#8221;Poppins||||||||&#8221; background_color=&#8221;#FFFFFF&#8221; text_orientation=&#8221;center&#8221; custom_margin=&#8221;||||false|false&#8221; custom_padding=&#8221;25px|25px|25px|25px|false|false&#8221; border_radii=&#8221;on|10px|10px|10px|10px&#8221; box_shadow_style=&#8221;preset3&#8243; global_colors_info=&#8221;{}&#8221;]<em>\u201cSince 2015, we have been building a quality partnership with 3P France. They listen to our requests, make proposals and respect the often very tight deadlines. The quality is there, we\u2019ve never been disappointed!\u201d<\/em>[\/et_pb_testimonial][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_testimonial author=&#8221;Kevin&#8221; job_title=&#8221;Purchasing manager in a Fench country-wide food retailer&#8221; quote_icon=&#8221;off&#8221; quote_icon_color=&#8221;#3AA2DB&#8221; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; body_font=&#8221;||||||||&#8221; author_font=&#8221;Poppins|700|||||||&#8221; author_text_color=&#8221;#063843&#8243; position_text_color=&#8221;#3AA2DB&#8221; position_font_size=&#8221;13px&#8221; position_line_height=&#8221;14px&#8221; company_font=&#8221;Poppins||||||||&#8221; background_color=&#8221;#FFFFFF&#8221; text_orientation=&#8221;center&#8221; custom_margin=&#8221;||||false|false&#8221; custom_padding=&#8221;25px|25px|25px|25px|false|false&#8221; border_radii=&#8221;on|10px|10px|10px|10px&#8221; box_shadow_style=&#8221;preset3&#8243; global_colors_info=&#8221;{}&#8221;]<em>\u201cAs specialists in frozen products, we need to offer our customers a transport solution to preserve our products in the best possible way.<br \/>\n3P France\u2019s isothermal bags completely fulfil this function, being resistant and insulating.\u201d<\/em>[\/et_pb_testimonial][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_testimonial author=&#8221;Jean-Christophe&#8221; job_title=&#8221;Fresh produce manager in a national supermarket&#8221; quote_icon=&#8221;off&#8221; quote_icon_color=&#8221;#3AA2DB&#8221; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; body_font=&#8221;||||||||&#8221; author_font=&#8221;Poppins|700|||||||&#8221; author_text_color=&#8221;#063843&#8243; position_text_color=&#8221;#3AA2DB&#8221; position_font_size=&#8221;13px&#8221; position_line_height=&#8221;14px&#8221; company_font=&#8221;Poppins||||||||&#8221; background_color=&#8221;#FFFFFF&#8221; text_orientation=&#8221;center&#8221; custom_margin=&#8221;||||false|false&#8221; custom_padding=&#8221;25px|25px|25px|25px|false|false&#8221; border_radii=&#8221;on|10px|10px|10px|10px&#8221; box_shadow_style=&#8221;preset3&#8243; global_colors_info=&#8221;{}&#8221;]<em>\u201c3P France is always ready to listen to its customers.<br \/>\nIt does everything to ensure the quality of its services, both on phone and by e-mail. The staff and management are always there when needed!\u201d<\/em>[\/et_pb_testimonial][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=&#8221;1_3,1_3,1_3&#8243; use_custom_gutter=&#8221;on&#8221; gutter_width=&#8221;2&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; width=&#8221;90%&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;||||false|false&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_testimonial author=&#8221;Fabien&#8221; job_title=&#8221;Purchasing Director of a French national frozen food retailer&#8221; quote_icon=&#8221;off&#8221; quote_icon_color=&#8221;#3AA2DB&#8221; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; body_font=&#8221;||||||||&#8221; author_font=&#8221;Poppins|700|||||||&#8221; author_text_color=&#8221;#063843&#8243; position_text_color=&#8221;#3AA2DB&#8221; position_font_size=&#8221;13px&#8221; position_line_height=&#8221;14px&#8221; company_font=&#8221;Poppins||||||||&#8221; background_color=&#8221;#FFFFFF&#8221; text_orientation=&#8221;center&#8221; custom_margin=&#8221;||||false|false&#8221; custom_padding=&#8221;25px|25px|25px|25px|false|false&#8221; border_radii=&#8221;on|10px|10px|10px|10px&#8221; box_shadow_style=&#8221;preset3&#8243; global_colors_info=&#8221;{}&#8221;]&#8221;I was looking for a quality solution for isothermal equipment for my customers and my shops and I naturally came across the company 3P France. After a first very positive exchange, both on a professional and human level, we decided to start our partnership.<br \/>\nAs time went by, I discovered a professional, responsive, flexible company that listens to its customers. The quality of the follow-up of the files is really reassuring! Quality products that make my customers and our shop teams very satisfied. It is therefore quite natural that we have continued to progress together for 8 years now.&#8221;[\/et_pb_testimonial][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_testimonial author=&#8221;Michael&#8221; job_title=&#8221;Drive manager in a national food supermarket&#8221; quote_icon=&#8221;off&#8221; quote_icon_color=&#8221;#3AA2DB&#8221; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; body_font=&#8221;||||||||&#8221; author_font=&#8221;Poppins|700|||||||&#8221; author_text_color=&#8221;#063843&#8243; position_text_color=&#8221;#3AA2DB&#8221; position_font_size=&#8221;13px&#8221; position_line_height=&#8221;14px&#8221; company_font=&#8221;Poppins||||||||&#8221; background_color=&#8221;#FFFFFF&#8221; text_orientation=&#8221;center&#8221; custom_margin=&#8221;||||false|false&#8221; custom_padding=&#8221;25px|25px|25px|25px|false|false&#8221; border_radii=&#8221;on|10px|10px|10px|10px&#8221; box_shadow_style=&#8221;preset3&#8243; global_colors_info=&#8221;{}&#8221;]&#8221;3P FRANCE is a reliable, efficient and reactive company, just like its staff who know how to be attentive to their customers&#8217; needs, providing quick, efficient and relevant advice. Transparency on its prices, its logistics and its manufacturing process, 3P FRANCE does not only sell us containers but a whole chain of skills. Special mention: a big thank you for all the performance you brought to us during the COVID with these confinements and lockdowns, you have strongly contributed to the continuation of the quality of our service.\u201d[\/et_pb_testimonial][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_column][\/et_pb_row][et_pb_row admin_label=&#8221;Ligne Devis&#8221; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; global_module=&#8221;173&#8243; saved_tabs=&#8221;all&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#F4F4F4&#8243; custom_padding=&#8221;50px|50px|50px|50px|false|false&#8221; border_radii=&#8221;on|10px|10px|10px|10px&#8221; box_shadow_style=&#8221;preset3&#8243; global_colors_info=&#8221;{}&#8221;][et_pb_text admin_label=&#8221;Titre H2&#8243; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; text_font=&#8221;Poppins|700|||||||&#8221; text_text_color=&#8221;#3AA2DB&#8221; header_2_text_align=&#8221;center&#8221; text_orientation=&#8221;center&#8221; header_2_text_align_tablet=&#8221;&#8221; header_2_text_align_phone=&#8221;center&#8221; header_2_text_align_last_edited=&#8221;on|phone&#8221; text_orientation_tablet=&#8221;&#8221; text_orientation_phone=&#8221;center&#8221; text_orientation_last_edited=&#8221;on|desktop&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h2>Your online quote in only a few clicks!<\/h2>\n<p>3P France is committed to providing the best cold chain circuit solution on the market.[\/et_pb_text][et_pb_button button_url=&#8221;https:\/\/www.3p-france.com\/en\/products\/&#8221; button_text=&#8221;Online quote&#8221; button_alignment=&#8221;center&#8221; _builder_version=&#8221;4.10.5&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_button][et_pb_code _builder_version=&#8221;4.14.7&#8243; _module_preset=&#8221;default&#8221; hover_enabled=&#8221;0&#8243; sticky_enabled=&#8221;0&#8243;][\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00c0 proposQui sommes-nous ? 3P France, des solutions isothermes sont toutes leurs formesSp\u00e9cialistes de l\u2019isotherme depuis 1987, 3P France est une soci\u00e9t\u00e9 tourn\u00e9e vers les clients qui ne craint pas les d\u00e9fis, une soci\u00e9t\u00e9 agile qui r\u00e9pond \u00e0 toutes les demandes et probl\u00e9matiques : Petites ou grandes s\u00e9riesProduits standardsProduits personnalis\u00e9sR\u00e9alisations sur mesureSolutions innovantesComment \u00e7a se [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"class_list":["post-14","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.3p-france.com\/en\/wp-json\/wp\/v2\/pages\/14","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.3p-france.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.3p-france.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.3p-france.com\/en\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.3p-france.com\/en\/wp-json\/wp\/v2\/comments?post=14"}],"version-history":[{"count":26,"href":"https:\/\/www.3p-france.com\/en\/wp-json\/wp\/v2\/pages\/14\/revisions"}],"predecessor-version":[{"id":1775,"href":"https:\/\/www.3p-france.com\/en\/wp-json\/wp\/v2\/pages\/14\/revisions\/1775"}],"wp:attachment":[{"href":"https:\/\/www.3p-france.com\/en\/wp-json\/wp\/v2\/media?parent=14"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}