Bangs Correction Protein Hair Softener Set
Bangs Correction Protein Hair Softener Set
Bangs Correction Protein Hair Softener Set
Bangs Correction Protein Hair Softener Set
Bangs Correction Protein Hair Softener Set
Bangs Correction Protein Hair Softener Set
Bangs Correction Protein Hair Softener Set
Bangs Correction Protein Hair Softener Set
Bangs Correction Protein Hair Softener Set
Bangs Correction Protein Hair Softener Set
1/10
Bangs Correction Protein Hair Softener Set
Bangs Correction Protein Hair Softener Set
Bangs Correction Protein Hair Softener Set
Bangs Correction Protein Hair Softener Set
Bangs Correction Protein Hair Softener Set
Bangs Correction Protein Hair Softener Set
Bangs Correction Protein Hair Softener Set
Bangs Correction Protein Hair Softener Set
Bangs Correction Protein Hair Softener Set
Bangs Correction Protein Hair Softener Set
1/10

Bangs Correction Protein Hair Softener Set

$29.99
$59.98
Save 50%
3286 sold
QTY
Please select a qty
Buy More Get More Free
Please select a buy more get more free
Quantity
/** @private {string} */ class SpzCustomAnchorScroll extends SPZ.BaseElement { static deferredMount() { return false; } constructor(element) { super(element); /** @private {Element} */ this.scrollableContainer_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } buildCallback() { this.viewport_ = this.getViewport(); this.initActions_(); } setTarget(containerId, targetId) { this.containerId = '#' + containerId; this.targetId = '#' + targetId; } scrollToTarget() { const container = document.querySelector(this.containerId); const target = container.querySelector(this.targetId); const {scrollTop} = container; const eleOffsetTop = this.getOffsetTop_(target, container); this.viewport_ .interpolateScrollIntoView_( container, scrollTop, scrollTop + eleOffsetTop ); } initActions_() { this.registerAction( 'scrollToTarget', (invocation) => this.scrollToTarget(invocation?.caller) ); this.registerAction( 'setTarget', (invocation) => this.setTarget(invocation?.args?.containerId, invocation?.args?.targetId) ); } /** * @param {Element} element * @param {Element} container * @return {number} * @private */ getOffsetTop_(element, container) { if (!element./*OK*/ getClientRects().length) { return 0; } const rect = element./*OK*/ getBoundingClientRect(); if (rect.width || rect.height) { return rect.top - container./*OK*/ getBoundingClientRect().top; } return rect.top; } } SPZ.defineElement('spz-custom-anchor-scroll', SpzCustomAnchorScroll); const STRENGTHEN_TRUST_URL = "/api/strengthen_trust/settings"; class SpzCustomStrengthenTrust extends SPZ.BaseElement { constructor(element) { super(element); this.renderElement_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } buildCallback() { this.xhr_ = SPZServices.xhrFor(this.win); const renderId = this.element.getAttribute('render-id'); SPZCore.Dom.waitForChild( document.body, () => !!document.getElementById(renderId), () => { this.renderElement_ = SPZCore.Dom.scopedQuerySelector( document.body, `#${renderId}` ); if (this.renderElement_) { this.render_(); } this.registerAction('track', (invocation) => { this.track_(invocation.args); }); } ); } render_() { this.fetchData_().then((data) => { if (!data) { return; } SPZ.whenApiDefined(this.renderElement_).then((apis) => { apis?.render(data); document.querySelector('#strengthen-trust-render-1539149753700').addEventListener('click',(event)=>{ if(event.target.nodeName == 'A'){ this.track_({type: 'trust_content_click'}); } }) }); }); } track_(data = {}) { const track = window.sa && window.sa.track; if (!track) { return; } track('trust_enhancement_event', data); } parseJSON_(string) { let result = {}; try { result = JSON.parse(string); } catch (e) {} return result; } fetchData_() { return this.xhr_ .fetchJson(STRENGTHEN_TRUST_URL) .then((responseData) => { if (!responseData || !responseData.data) { return null; } const data = responseData.data; const moduleSettings = (data.module_settings || []).reduce((result, moduleSetting) => { return result.concat(Object.assign(moduleSetting, { logos: (moduleSetting.logos || []).map((item) => { return moduleSetting.logos_type == 'custom' ? this.parseJSON_(item) : item; }) })); }, []); return Object.assign(data, { module_settings: moduleSettings, isEditor: window.self !== window.top, }); }); } } SPZ.defineElement('spz-custom-strengthen-trust', SpzCustomStrengthenTrust);

ARE THESE BOTHERING YOU

FEATURES

DESIGNED FOR BANGS: This set is specifically tailored for correcting bangs, helping to create a natural and flowing bang style that enhances the overall look.

GENTLE SOFTENING: Special formula gently softens hair, allowing bangs and sideburns to lay naturally flat, effortlessly creating smooth, straight hair.

NON-IRRITATING SCENT: It is formulated with low-odor ingredients, ensuring no harsh chemical smell during use and providing a more pleasant experience.

EASY TO USE: The application method is straightforward and clear, suitable for home use without the need for professional skills, making it easy for anyone to master.

SUITABLE FOR ALL HAIR TYPES: Effective for various hair types, whether fine, coarse, or curly, successfully softening and correcting to meet the needs of different users.

SPEC

Shelf Life: 3 Years

Net Content: 30 ML

Size: 24*5.5*5.5 CM

Suitable Hair Type: Universal

Ingredients: Water, Semi-Skin Amine Hydrochloride, Ethanolamine, Urea, Cetyl Stearone

Package Includes: 1/2* Bangs Correction Protein Hair Softener Set

NOTES

Please allow a small error due to manual measurement. Please make sure you do not mind before purchasing.

Store it in a cool, dry place away from direct sunlight.