Products
AlumierMD Recovery Balm Moisturiser
Alumier and ZO products are only available through specialist clinics and a phone consultation before purchase. Please submit your enquiry below and our skin specialist will be in touch to the best products for your needs.
The AlumierMD Recovery Balm Moisturiser is an intensely soothing moisturiser, specifically formulated for post-procedure recovery. It works for alleviating redness and skin sensitivity, and is suitable for use on dry skin.
Recovery Balm Moisturiser is available in 50ml.
Enjoying the products? Why not try out the ?
Recovery Balm is an antioxidant and peptide-rich moisturiser specifically formulated for post-procedure recovery. Hinokitiol, sea whip and tetrapeptide-14 relieve redness. Aloe, honey and boswellia soothe and copper peptide rehabilitates the look of skin.
is:
Dye free
Chemical sunscreen filter free
Twist pump left to open and right to close. Apply to face and neck post treatment. Use up to three times per day for a maximum of 5 days post peel. Recovery Balm can also be used as a daily moisturizer AM and PM.
Caution: For external use only. Avoid contact with eyes, eyelids and mucous membranes. Keep out of reach of children.
Hinokitiol (Thujaplicin): Extracted from the oils of the western red cedar tree, hinokitiol is a superpower ingredient with soothing, anti-irritant, antioxidant and brightening properties. These properties allow hinokitiol to target Skin Redness; wumeitech.com, and . More than 100 scientific articles exist on the biological effects of hinokitiol.
Copper Peptide: A peptide with a high affinity for copper, this ingredient helps to rehabilitate the look of skin.
Sea Whip: The active ingredient gorgonian extract is derived from a marine organism known as sea whip, which is a renewable resource in the Caribbean Sea. Gorgonian extract has powerful and soothing properties. This makes it an excellent ingredient for redness and blemish-prone skin.
Tetrapeptide-14, Tea Extracts, Boswellia Serrate Extract, Honey: A redness-relieving peptide is combined with the antioxidant properties of tea and the calming qualities of honey and boswellia serrate.
Aloe: from the aloe vera plant, soothing aloe contains amino acids, and minerals.
Full Ingredient List: WATER/AQUA/EAU, PROPANEDIOL, BUTYROSPERMUM PARKII (SHEA) BUTTER, SIMMONDSIA CHINENSIS (JOJOBA) SEED OIL, GLYCERIN, DIMETHICONE, CAPRYLIC/CAPRIC TRIGLYCERIDE, BEHENYL ALCOHOL, THEOBROMA CACAO (COCOA) SEED BUTTER, SODIUM ACRYLATES COPOLYMER, NIACINAMIDE, HINOKITIOL, RESVERATROL, TETRAPEPTIDE-14, COPPER TRIPEPTIDE-1, LAVANDULA ANGUSTIFOLIA (LAVENDER) FLOWER/LEAF/STEM EXTRACT, ASPALATHUS LINEARIS LEAF (ROOIBOS) EXTRACT, BOSWELLIA SERRATA GUM EXTRACT, HONEY EXTRACT (EXTRAIT DE MIEL) , ANTHEMIS NOBILIS FLOWER EXTRACT, CAMELLIA SINENSIS LEAF EXTRACT, EUCALYPTUS GLOBULUS LEAF EXTRACT, MENTHA (SPEARMINT) EXTRACT, POGOSTEMON CABLIN LEAF EXTRACT, PYRUS MALUS (APPLE) FRUIT EXTRACT, ROSE EXTRACT, OFFICINALIS (ROSEMARY) LEAF EXTRACT, VACCINIUM MACROCARPON (CRANBERRY) FRUIT EXTRACT, SEA WHIP EXTRACT, SQUALANE, ALOE BARBADENSIS LEAF JUICE, LECITHIN, HYDROGENATED LECITHIN, DISODIUM EDTA, POLYMETHYL METHACRYLATE, SODIUM HYDROXIDE, TRICAPRYLIN, CAPRYLYL GLYCOL, XYLITOL, CAPRYLIC ACID, SODIUM METHYL TAURATE, GUM, PENTYLENE GLYCOL, ETHYLHEXYLGLYCERIN.
Reviews
There are no reviews yet.
You must be to post a review.
Related products
ZO Soothing Hydro Mist
ZO Peptide Facial Refining Concentrate
Intradermology Synergy6 SPF50
Vie Aesthetics Hyaluronic Acid Gold Eye Patches
var hasJQuery = document.getElementById(‘yext-jquery’);
var head = document.getElementsByTagName(‘head’)[0];
if (hasJQuery === null)
var jQueryScript = document.createElement(‘script’);
jQueryScript.type = ‘text/javascript’;
jQueryScript.src = ‘//sites.yext.com/static/jquery-1.12.4.min.js’;
jQueryScript.id = ‘yext-jquery’;
var loaded = false;
jQueryScript.onload = jQueryScript.onreadystatechange = function() state === ‘complete’))
; head.appendChild(jQueryScript);
onJQuery(function() var hasYextFotorama = document.getElementById(‘yext-fotorama’) !== null;
if (!hasYextFotorama) var fotorama = document.createElement(“script”); fotorama.id = ‘yext-fotorama’; fotorama.type = “text/javascript”; fotorama.src = “//sites.yext.com/static/fotorama-4.4.4.js”; head.appendChild(fotorama);
var script = document.createElement(“script”);
script.type = “text/javascript”;
head.appendChild(script); script.text = ‘yext.$(\u0022#yext-widget .js-yext-reviews.yext-widget-uuid-449ba9b6-45ab-4f82-a87f-7bcc94ccc88c\u0022).ready(function() var $ = yext.$, $widget = $(\u0022#yext-widget .js-yext-reviews.yext-widget-uuid-449ba9b6-45ab-4f82-a87f-7bcc94ccc88c\u0022), $buttonsWrapper = $widget.find(\u0022.yext-reviews-body\u0022).find(\u0022.yext-pagination\u0022), $buttons = $buttonsWrapper.find(\u0022.js-yext-pagination-button\u0022), $page = $widget.find(\u0022.yext-reviews-page\u0022), $popup = $widget.find(\u0022.popup-body\u0022), $popupButtonsWrapper = $popup.find(\u0022.yext-pagination\u0022), $popupButtons = $popupButtonsWrapper.find(\u0022.js-yext-pagination-button\u0022), $star = $widget.find(\u0022.yext-reviews-star\u0022); var paginationIndex = 0, size = 5, maxScore = 5, total = $widget.data(\u0022review-total\u0022), numPages = Math.ceil(total\/size), numLinks = Math.min(5, numPages); \/** * Wait for widget to load and then fire the \u0022yext-widget-loaded\u0022 event *\/ var waitForWidgetReady = function() setTimeout(function() if ($widget.is(\u0022:visible\u0022)) $widget.trigger(\u0022yext-widget-loaded\u0022); else waitForWidgetReady(); , 200); ; \/** * Update the pagination buttons based on the current page number *\/ var updatePaginationButtons = function($buttons) \/* Only show pagination buttons if there is more than one page. *\/ const $paginationSection = $buttons.parent(); if (numPages \u003e 1) const selectedButtonClasses = \u0022yext-bg-color-text yext-text-color-bg selected\u0022; $buttons .removeAttr(\u0022style\u0022) .hide() .removeClass(selectedButtonClasses); var offset = Math.min(numPages – numLinks, Math.max(0, Math.ceil(paginationIndex – numLinks\/2))); for (var i = offset; i \u003c offset \u002b numLinks; i\u002b\u002b) var $button = $buttons.eq(i); if (paginationIndex === i) $button.addClass(selectedButtonClasses); $button.show(); $(\u0022.js-yext-back\u0022).toggleClass(\u0022arrow-invisible\u0022, paginationIndex === 0); $(\u0022.js-yext-forward\u0022).toggleClass(\u0022arrow-invisible\u0022, paginationIndex === numPages – 1); $paginationSection.fadeIn(\u0022slow\u0022); else $paginationSection.hide(); ; \/* * Truncates reviews that are too long. Clicking a long review expands it. *\/ var handleLongReviews = function($widget) $widget.find(\u0022.js-review-message\u0022).each(function() var $self = $(this); var $reviewContent = $self.find(\u0022.review-content\u0022); var originalContent = $reviewContent.text(); var truncatedContent = originalContent.substr(0, 255); if (truncatedContent !== originalContent) $reviewContent.text(truncatedContent \u002b \u0022…\u0022); $reviewContent.css(\u0022cursor\u0022, \u0022pointer\u0022); $reviewContent.on(\u0022click\u0022, function() $reviewContent.text(originalContent); $reviewContent.css(\u0022cursor\u0022, \u0022\u0022); ); ); ; \/* * Bind forward\/back listeners for reviews. *\/ var bindMoveReviews = function($widget) $widget.on(\u0022click\u0022, \u0022.js-yext-back\u0022, function() if (paginationIndex === 0) return; paginationIndex–; updatePage(); ); $widget.on(\u0022click\u0022, \u0022.js-yext-forward\u0022, function() if (paginationIndex === numPages-1) return; paginationIndex\u002b\u002b; updatePage(); ); $widget.on(\u0022click\u0022, \u0022.js-yext-pagination-button\u0022, function() const clickedPageNumber = $(this).data(\u0022page-number\u0022); if (paginationIndex !== clickedPageNumber) paginationIndex = clickedPageNumber; updatePage(); ); ; \/* * Binds the popup navigation link *\/ var bindPopupNavigation = function() var $popupContent = $widget.find(\u0022.js-yext-reviews-popup\u0022); $widget.on(\u0022click\u0022, \u0022.js-yext-review-nav-popup\u0022, function() $popupContent.dialog( closeOnEscape: false, draggable: false, modal: true, resizable: false, title: \u0022Reviews\u0022, height: 550, width: 375, dialogClass: \u0022yext-widget-popup yext-reviews js-yext-reviews\u0022 ); ); ; \/** * Update stars based on its score stored in data tag. *\/ var updateStars = function() $(\u0022.js-stars\u0022).each(function() var $self = $(this); if ($self.hasClass(\u0022header-stars\u0022) \u0026\u0026 $self.html().length) return true; var score = $self.data(\u0022score\u0022); $self.empty(); for (var i = 1; i \u003c= Math.floor(score); i \u002b\u002b) $self.append($star.filter(\u0022.full\u0022).clone().show()); if (Math.floor(score) != Math.ceil(score)) $self.append($star.filter(\u0022.half\u0022).clone().show()); for (var i = Math.ceil(score); i \u003c maxScore; i \u002b\u002b) $self.append($star.filter(\u0022.empty\u0022).clone().show()); $self.find(\u0022\u003e:first-child\u0022).attr(\u0022alt\u0022, score \u002b \u0022 stars out of 5\u0022) ); ; \/** * Send cross-domain ajax call to fetch reviews in the new page. *\/ var updatePage = function() if (paginationIndex \u003e numPages – 1) return; $page.fadeOut(\u0022slow\u0022, function() var script = document.createElement(\u0022script\u0022); script.src = \u0022\/\/sites.yext.com\/reviews\/343050?callback=yext_render_reviews_343050\u0026\u0026pageNumber=\u0022\u002bpaginationIndex; var scriptParent = getScriptParentElement_(); scriptParent.appendChild(script); $buttonsWrapper.hide(); $popupButtonsWrapper.hide(); ); ; \/** * Gets the DOM element under which we should add new script elements. * How? Take the first head element, and if not found take doc.documentElement, * which always exists. * source: https:\/\/github.com\/google\/closure-library\/blob\/f1343d3b4f7673a2f2d829da635f8c4a331dd124\/closure\/goog\/net\/jsloader.js#L305 * * @return !Element The script parent element. * @private *\/ var getScriptParentElement_ = function() var headElements = document.getElementsByTagName(\u0022head\u0022); if (!headElements ; \/** * Ajax callback function to render reviews. * * @param html string callback html *\/ window.yext_render_reviews_ = function(html) $page .html(html) .fadeIn(\u0022slow\u0022); updateStars(); updatePaginationButtons($buttons); updatePaginationButtons($popupButtons); handleLongReviews($page); ; var bindPageButtons = function(page) bindMoveReviews(page); handleLongReviews(page); ; \/** Handle the initialization of the yext widget. *\/ waitForWidgetReady(); $widget.on(\u0022yext-widget-loaded\u0022, function() bindPageButtons($widget); bindPageButtons($popup); bindPopupNavigation(); updateStars(); updatePaginationButtons($buttons); updatePaginationButtons($popupButtons); ); ); ‘;
);
function onJQuery(cb)
if (!window.yext_jQuery) setTimeout(function() onJQuery(cb); , 100);
else cb();
(function()
function firePixel() var img = document.createElement(“img”); img.setAttribute(“src”, “//us.yextevents.com/plpixel?pid=jLO3skWo0D&action=impression&businessids= &source=reviews”); img.style.display = “none”; img.setAttribute(“width”, “1”); img.setAttribute(“height”, “1”); img.setAttribute(“alt”, “”); document.getElementsByTagName(“body”)[0].appendChild(img);
firePixel();
)();


Leave a Reply