Products
ZO Wrinkle + Texture Repair (Retinol 0.5%)
Alumier and ZO products are only available specialist clinics and require a phone consultation before purchase. Please submit your enquiry below and our skin specialist will be in touch to discuss the best products for your needs.
Featuring a microemulsion delivery system, the ZO Skin Health Wrinkle + Texture Repair 0.5% Retinol is a high-potency retinol treatment. It is designed to reactivate the process of skin renewal to restore natural hydration, reduce the appearance of wrinkles, and refine skin texture.
Its include:
Enjoying ? Why not try the to go with it!
in 50ml.
Apply to clean, dry skin.
The potency of Wrinkle & Texture Repair can cause redness, dryness and peeling for the first few weeks. These anticipated reactions are a sign of effective stimulation of the skin and will with consistent use.
Aqua/Water/Eau, Cetearyl Isononanoate, Cyclopentasiloxane, Glycerin, Cetearyl Alcohol, OnabotulinumtoxinAAbobotulinumtoxinAIncobotulinumtoxinAPrabotulinumtoxinALetibotulinumtoxinARimabotulinumtoxinBHyaluronic Acid FillersCalcium Hydroxylapatite FillersPoly-L-lactic Acid FillersPolymethylmethacrylate FillersAutologous Fat GraftingForehead Lines TreatmentGlabellar Frown Lines TreatmentCrow’s Feet TreatmentBunny Lines TreatmentChemical Brow LiftLip FlipGummy Smile CorrectionMasseter ReductionJaw SlimmingDimpled Chin SmoothingCobblestone Chin SmoothingNefertiti Neck LiftMicro-BotoxMesotoxHyperhidrosis TreatmentChronic Migraine ReliefBruxism TreatmentTMJ TreatmentCervical Dystonia TreatmentNeck Spasm TreatmentBlepharospasm TreatmentLip AugmentationLip ContouringCheekbone EnhancementTear Trough FillersNasolabial Fold SofteningMarionette Line FillersLiquid RhinoplastyNon-Surgical Nose JobJawline ContouringJawline DefinitionChin AugmentationTemple VolumisingHand RejuvenationAcne Scar Subcision Filling Cyclohexasiloxane, Steareth-20, Cetyl Alcohol, Pentylene Glycol, Caprylate, Carbomer, Polysorbate 20, Lavandula Angustifolia (Lavender) Oil, Pelargonium Graveolens Flower Oil, Prunus Armeniaca (Apricot) Kernel Oil), Melilotus Officinalis Extract, Davidii Meristem Cell Culture, Ascorbyl Palmitate, Tocopheryl Acetate, Pentaerythrityl Tetra-di-t-butyl Hydroxyhydrocinnamate, Retinol, Cetearyl Glucoside, Acrylamide/Ammonium Acrylate Copolymer, 1,2-Hexanediol, Glycol, Bisabolol, Lecithin, Nylon-12, Polyisobutene, Butylene Glycol, Sericin, Phospholipids, Glucose, Disodium EDTA, Sodium Metabisulfite, Sodium Sulfite, Beta-Glucan, Sorbitan Isostearate, Ethyl Nicotinate, Ethylhexylglycerin, Xanthan Gum, Caprooyl Tetrapeptide-3, Dextran, Sodium Hydroxide, Sodium Benzoate, Potassium Sorbate, Phenoxyethanol, Ext. Violet 2 (CI 60730), , Geraniol, Linalool, Citral.
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() ; 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-06cd2dc7-0eb a4cd-9ec f\u0022).ready(function() var $ = yext.$, $widget = $(\u0022#yext-widget .js-yext-reviews.yext-widget-uuid-06cd2dc7-0eb a4cd-9ec f\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();
)();
