Check server response of

Server response
NS records
Whois domain
Response headers
Request headers
Raw HTML code
301 Moved Permanently - kbpro.com
HTTP Status: 301
User-Agent: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected])
Date: Tue, 06 May 2025 14:14:34 GMT
Content-Type: text/html
Content-Length: 167
Connection: keep-alive
Cache-Control: max-age=3600
Expires: Tue, 06 May 2025 15:14:34 GMT
Location: https://kbpro.com/
Report-To: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=9XBEFSfbOO%2BOj8NKuxj5dILA1oWRPGyLaZSoHhQEI6eVAc1xiEKtqPDYU%2Bn6By0U8rgp%2BuQuwoD3q%2BmT60Wmh9l1hg9LGbHrMmvIWiAzJcZSEk0vehjs%2FnYsvg%3D%3D"}],"group":"cf-nel","max_age":604800}
NEL: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
Server: cloudflare
CF-RAY: 93b915aecca5bedc-LHR
server-timing: cfL4;desc="?proto=TCP&rtt=35330&min_rtt=35330&rtt_var=17665&sent=1&recv=3&lost=0&retrans=0&sent_bytes=0&recv_bytes=165&delivery_rate=0&cwnd=30&unsent_bytes=0&cid=0000000000000000&ts=0&x=0"

HTTP Code 301 Moved Permanently

301 http status code means that the requested resource has been permanently moved to a new URL. All future requests should use the new address.

When is Code 301 used?

  • When changing a website domain
  • When modifying URL structures
  • When setting up redirects for SEO

What does Code 301 mean for the user?

The browser will automatically redirect the user to the new address, and search engines will update their indexes.

200 OK - https://kbpro.com/
HTTP Status: 200
User-Agent: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected])
Date: Tue, 06 May 2025 14:14:34 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
vary: Accept-Encoding
x-magento-tags: cms_b_logo,store,cms_b,mp_smtp_script,snowdog_menu_menu,BLOCK_HTML,cms_b_block_footer_bottom,cms_b_paypal,cms_b_248,cms_b_ga4_events_kb,cms_p_54,cms_b_trustbar_top,cms_b_consumer_auth_text_block,cms_b_kbpro-footer-payment-icons,cms_b_kbpro-footer-copyright,cms_b_kb_footer_links_btm
report-to: {"group":"report-endpoint","max_age":10886400,"endpoints":[{"url":"https:\/\/nouveaulashes.report-uri.com\/r\/d\/csp\/reportOnly"}]}
content-security-policy-report-only: font-src *.gstatic.com 'self' data: *.doubleclick.net *.facebook.com *.klevu.com *.ksearchnet.com *.fontawesome.com https://fonts.gstatic.com https://www.google.com https://www.gstatic.com hdbrows.nbg.test data: 'self' 'unsafe-inline'; form-action geostag.cardinalcommerce.com geo.cardinalcommerce.com 1eafstag.cardinalcommerce.com 1eaf.cardinalcommerce.com centinelapistag.cardinalcommerce.com centinelapi.cardinalcommerce.com pilot-payflowlink.paypal.com www.paypal.com www.sandbox.paypal.com *.adyen.com *.facebook.com https://plumrocket.com 'self' 'unsafe-inline'; frame-ancestors 'self'; frame-src fast.amc.demdex.net *.adobe.com bid.g.doubleclick.net *.youtube.com *.youtube-nocookie.com geostag.cardinalcommerce.com geo.cardinalcommerce.com 1eafstag.cardinalcommerce.com 1eaf.cardinalcommerce.com centinelapistag.cardinalcommerce.com centinelapi.cardinalcommerce.com www.paypal.com www.sandbox.paypal.com pilot-payflowlink.paypal.com player.vimeo.com https://www.google.com/recaptcha/ *.adyen.com *.google.com *.doubleclick.net *.facebook.com account.fetchify.com widget.trustpilot.com td.doubleclick.net https://plumrocket.com *.trustpilot.com *.weltpixel.com www.xtento.com 'self' 'unsafe-inline'; img-src assets.adobedtm.com amcglobal.sc.omtrdc.net dpm.demdex.net cm.everesttech.net *.adobe.com widgets.magentocommerce.com data: www.googleadservices.com www.google-analytics.com googleads.g.doubleclick.net www.google.com bid.g.doubleclick.net analytics.google.com www.googletagmanager.com *.ftcdn.net *.behance.net t.paypal.com www.paypal.com www.paypalobjects.com fpdbs.paypal.com fpdbs.sandbox.paypal.com *.vimeocdn.com i.ytimg.com *.youtube.com validator.swagger.io *.adyen.com 'self' data: *.google.com *.google.bg *.facebook.com *.facebook.net *.doubleclick.net *.googletagmanager.com *.gstatic.com *.bird.eu www.feedoptimise.com cdn.feedoptimise.com https://static.klaviyo.com https://static-forms.klaviyo.com https://fast.a.klaviyo.com https://static-tracking.klaviyo.com/ https://a.klaviyo.com/ https://telemetrics.klaviyo.com/ *.klevu.com *.ksearchnet.com hdbrows.nbg.test hdbrows.com hdbrows.ng.stg.nexusbrands.eu www.google.co.uk js.klevu.com www.xtento.com cdn.xtento.com data: 'self' 'unsafe-inline'; script-src assets.adobedtm.com *.adobe.com www.googleadservices.com www.google-analytics.com googleads.g.doubleclick.net analytics.google.com www.googletagmanager.com geostag.cardinalcommerce.com 1eafstag.cardinalcommerce.com geoapi.cardinalcommerce.com 1eafapi.cardinalcommerce.com songbird.cardinalcommerce.com includestest.ccdc02.com www.paypal.com www.sandbox.paypal.com www.paypalobjects.com t.paypal.com s.ytimg.com www.googleapis.com vimeo.com www.vimeo.com *.vimeocdn.com *.youtube.com https://www.gstatic.com/recaptcha/ https://www.google.com/recaptcha/ *.adyen.com *.google.com *.google.bg *.googletagmanager.com *.facebook.com *.facebook.net *.doubleclick.net *.google-analytics.com *.gstatic.com *.attn.tv events.attentivemobile.com www.feedoptimise.com cdn.feedoptimise.com https://static.klaviyo.com https://static-forms.klaviyo.com https://fast.a.klaviyo.com https://static-tracking.klaviyo.com/ https://a.klaviyo.com/ https://telemetrics.klaviyo.com/ js.klevu.com *.ksearchnet.com *.googleapis.com *.avada.io hdbrows.nbg.test www.google.com www.gstatic.com widget.trustpilot.com invitejs.trustpilot.com tag.rmp.rakuten.com https://crm.nouveaubeauty.com *.trustpilot.com www.xtento.com cdn.xtento.com 'self' 'unsafe-inline' 'unsafe-eval'; style-src *.adobe.com *.googleapis.com *.doubleclick.net *.facebook.com *.gstatic.com *.googletagmanager.com cc-cdn.com https://static.klaviyo.com *.klevu.com *.ksearchnet.com *.fontawesome.com *.google.com hdbrows.nbg.test js.klevu.com *.trustpilot.com 'self' 'unsafe-inline' 'unsafe-eval'; object-src 'self' 'unsafe-inline'; media-src *.adobe.com 'self' 'unsafe-inline'; manifest-src 'self' 'unsafe-inline'; connect-src dpm.demdex.net amcglobal.sc.omtrdc.net www.google-analytics.com www.googleadservices.com analytics.google.com www.googletagmanager.com vimeo.com geostag.cardinalcommerce.com geo.cardinalcommerce.com 1eafstag.cardinalcommerce.com 1eaf.cardinalcommerce.com centinelapistag.cardinalcommerce.com centinelapi.cardinalcommerce.com www.sandbox.paypal.com www.paypalobjects.com www.paypal.com pilot-payflowlink.paypal.com *.adyen.com *.google-analytics.com *.facebook.com *.facebook.net *.google.com *.attn.tv events.attentivemobile.com api.craftyclicks.co.uk pcls1.craftyclicks.co.uk https://static.klaviyo.com https://static-forms.klaviyo.com https://fast.a.klaviyo.com https://static-tracking.klaviyo.com/ https://a.klaviyo.com/ https://telemetrics.klaviyo.com/ *.klevu.com *.ksearchnet.com http://dpm.demdex.net https://www.google.com https://www.gstatic.com https://get.geojs.io *.avada.io hdbrows.nbg.test widget.trustpilot.com https://crm.nouveaubeauty.com 'self' 'unsafe-inline'; child-src http: https: blob: 'self' 'unsafe-inline'; default-src hdbrows.nbg.test 'self' 'unsafe-inline' 'unsafe-eval'; base-uri 'self' 'unsafe-inline'; report-uri https://nouveaulashes.report-uri.com/r/d/csp/reportOnly; report-to report-endpoint;
x-content-type-options: nosniff
x-xss-protection: 1; mode=block
x-frame-options: SAMEORIGIN
magestack-tag: Dynamic
magestack-area: Frontend
magestack-loadbalancer: 149.86.99.35
access-control-allow-origin: https://kbpro.com
access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept
magestack-magento-version: 2
magestack-cache-lifetime-sent: 7d
magestack-debug: true
magestack-last-modified: true
magestack-config: global
magestack-web-node: web1
magestack-cacheable: Yes
magestack-cache-status: 200
magestack-cache-lifetime: 86400.000
magestack-cache-warning: Refusing to overwrite response TTL for Magento 2
last-modified: Tue, 06 May 2025 08:09:19 GMT
magestack-pagespeed: false
pragma: no-cache
expires: -1
Cache-Control: no-store, no-cache, must-revalidate, max-age=0
magestack-cache-hits: 77
magestack-cache: Hit
strict-transport-security: max-age=0
cf-cache-status: DYNAMIC
Server: cloudflare
CF-RAY: 93b915afbb9d7719-LHR
server-timing: cfL4;desc="?proto=TCP&rtt=35168&min_rtt=35155&rtt_var=9905&sent=4&recv=7&lost=0&retrans=0&sent_bytes=2835&recv_bytes=784&delivery_rate=82228&cwnd=32&unsent_bytes=0&cid=95078b0663a2b266&ts=82&x=0"

HTTP Code 200 OK

200 http status code is a standard successful HTTP server response. It means that the client’s request (e.g., from a browser) was successfully processed, and the server is delivering the requested data.

When is Code 200 used?

  • When loading a web page
  • When successfully receiving an API response
  • When processing a form or another HTTP request

What does Code 200 mean for the user?

The user receives content without errors, and the page or application functions properly. If Code 200 is accompanied by data, the browser or program processes and displays it to the user.

GET / HTTP/1.1
Host: kbpro.com
Accept: */*
User-Agent: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected])
<!doctype html>
<html lang="en">
    <head >
        <script>
    var LOCALE = 'en\u002DGB';
    var BASE_URL = 'https\u003A\u002F\u002Fkbpro.com\u002F';
    var require = {
        'baseUrl': 'https\u003A\u002F\u002Fkbpro.com\u002Fstatic\u002Fversion1742940459\u002Ffrontend\u002Fkbpro\u002Fkbpro\u002Fen_GB'
    };</script>        <meta charset="utf-8"/><script type="text/javascript">(window.NREUM||(NREUM={})).init={privacy:{cookies_enabled:true},ajax:{deny_list:["bam.eu01.nr-data.net"]},distributed_tracing:{enabled:true}};(window.NREUM||(NREUM={})).loader_config={agentID:"538465741",accountID:"3893562",trustKey:"3893562",xpid:"Vw4OUlNVChADU1dbAwYOX1c=",licenseKey:"NRJS-19c7d7bca3f35248723",applicationID:"376947993"};;/*! For license information please see nr-loader-spa-1.288.1.min.js.LICENSE.txt */
(()=>{var e,t,r={8122:(e,t,r)=>{"use strict";r.d(t,{a:()=>i});var n=r(944);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.R)(3);if(!t||"object"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),o=0===Object.keys(r).length?e:r;for(let a in o)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):"object"==typeof e[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555:(e,t,r)=>{"use strict";r.d(t,{Vp:()=>c,fn:()=>s,x1:()=>u});var n=r(384),i=r(8122);const o={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0},a={};function s(e){try{const t=c(e);return!!t.licenseKey&&!!t.errorBeacon&&!!t.applicationID}catch(e){return!1}}function c(e){if(!e)throw new Error("All info objects require an agent identifier!");if(!a[e])throw new Error("Info for ".concat(e," was never set"));return a[e]}function u(e,t){if(!e)throw new Error("All info objects require an agent identifier!");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r&&(r.info=a[e])}},9417:(e,t,r)=>{"use strict";r.d(t,{D0:()=>h,gD:()=>g,xN:()=>p});var n=r(3333);const i=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var o=r(2614),a=r(944),s=r(384),c=r(8122);const u="[data-nr-mask]",d=()=>{const e={feature_flags:[],experimental:{marks:!1,measures:!1,resources:!1},mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,autoStart:!0},api:{allow_registered_children:!0,duplicate_registered_data:!1},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},get feature_flags(){return e.feature_flags},set feature_flags(t){e.feature_flags=t},generic_events:{enabled:!0,autoStart:!0},harvest:{interval:30},jserrors:{enabled:!0,autoStart:!0},logging:{enabled:!0,autoStart:!0},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,autoStart:!0},performance:{get capture_marks(){return e.feature_flags.includes(n.$v.MARKS)||e.experimental.marks},set capture_marks(t){e.experimental.marks=t},get capture_measures(){return e.feature_flags.includes(n.$v.MEASURES)||e.experimental.measures},set capture_measures(t){e.experimental.measures=t},capture_detail:!0,resources:{get enabled(){return e.feature_flags.includes(n.$v.RESOURCES)||e.experimental.resources},set enabled(t){e.experimental.resources=t},asset_types:[],first_party_domains:[],ignore_newrelic:!0}},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:o.wk,inactiveMs:o.BB},session_replay:{autoStart:!0,enabled:!1,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inline_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){i(t)?e.mask_selector="".concat(t,",").concat(u):""===t||null===t?e.mask_selector=u:(0,a.R)(5,t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){i(t)?e.block_selector+=",".concat(t):""!==t&&(0,a.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,a.R)(7,t)}},session_trace:{enabled:!0,autoStart:!0},soft_navigations:{enabled:!0,autoStart:!0},spa:{enabled:!0,autoStart:!0},ssl:void 0,user_actions:{enabled:!0,elementAttributes:["id","className","tagName","type"]}}},l={},f="All configuration objects require an agent identifier!";function h(e){if(!e)throw new Error(f);if(!l[e])throw new Error("Configuration for ".concat(e," was never set"));return l[e]}function p(e,t){if(!e)throw new Error(f);l[e]=(0,c.a)(t,d());const r=(0,s.nY)(e);r&&(r.init=l[e])}function g(e,t){if(!e)throw new Error(f);var r=h(e);if(r){for(var n=t.split("."),i=0;i<n.length-1;i++)if("object"!=typeof(r=r[n[i]]))return;r=r[n[n.length-1]]}return r}},5603:(e,t,r)=>{"use strict";r.d(t,{a:()=>c,o:()=>s});var n=r(384),i=r(8122);const o={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},a={};function s(e){if(!e)throw new Error("All loader-config objects require an agent identifier!");if(!a[e])throw new Error("LoaderConfig for ".concat(e," was never set"));return a[e]}function c(e,t){if(!e)throw new Error("All loader-config objects require an agent identifier!");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r&&(r.loader_config=a[e])}},3371:(e,t,r)=>{"use strict";r.d(t,{V:()=>f,f:()=>l});var n=r(8122),i=r(384),o=r(6154),a=r(9324);let s=0;const c={buildEnv:a.F3,distMethod:a.Xs,version:a.xv,originTime:o.WN},u={appMetadata:{},customTransaction:void 0,denyList:void 0,disabled:!1,entityManager:void 0,harvester:void 0,isolatedBacklog:!1,loaderType:void 0,maxBytes:3e4,obfuscator:void 0,onerror:void 0,ptid:void 0,releaseIds:{},session:void 0,timeKeeper:void 0},d={};function l(e){if(!e)throw new Error("All runtime objects require an agent identifier!");if(!d[e])throw new Error("Runtime for ".concat(e," was never set"));return d[e]}function f(e,t){if(!e)throw new Error("All runtime objects require an agent identifier!");d[e]={...(0,n.a)(t,u),...c},Object.hasOwnProperty.call(d[e],"harvestCount")||Object.defineProperty(d[e],"harvestCount",{get:()=>++s});const r=(0,i.nY)(e);r&&(r.runtime=d[e])}},9324:(e,t,r)=>{"use strict";r.d(t,{F3:()=>i,Xs:()=>o,Yq:()=>a,xv:()=>n});const n="1.288.1",i="PROD",o="CDN",a="^2.0.0-alpha.18"},6154:(e,t,r)=>{"use strict";r.d(t,{A4:()=>s,OF:()=>d,RI:()=>i,WN:()=>h,bv:()=>o,gm:()=>a,lR:()=>f,m:()=>u,mw:()=>c,sb:()=>l});var n=r(1863);const i="undefined"!=typeof window&&!!window.document,o="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),a=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),s="complete"===a?.document?.readyState,c=Boolean("hidden"===a?.document?.visibilityState),u=""+a?.location,d=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),l=d&&"undefined"==typeof SharedWorker,f=(()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),h=Date.now()-(0,n.t)()},7295:(e,t,r)=>{"use strict";r.d(t,{Xv:()=>a,gX:()=>i,iW:()=>o});var n=[];function i(e){if(!e||o(e))return!1;if(0===n.length)return!0;for(var t=0;t<n.length;t++){var r=n[t];if("*"===r.hostname)return!1;if(s(r.hostname,e.hostname)&&c(r.pathname,e.pathname))return!1}return!0}function o(e){return void 0===e.hostname}function a(e){if(n=[],e&&e.length)for(var t=0;t<e.length;t++){let r=e[t];if(!r)continue;0===r.indexOf("http://")?r=r.substring(7):0===r.indexOf("https://")&&(r=r.substring(8));const i=r.indexOf("/");let o,a;i>0?(o=r.substring(0,i),a=r.substring(i)):(o=r,a="");let[s]=o.split(":");n.push({hostname:s,pathname:a})}}function s(e,t){return!(e.length>t.length)&&t.indexOf(e)===t.length-e.length}function c(e,t){return 0===e.indexOf("/")&&(e=e.substring(1)),0===t.indexOf("/")&&(t=t.substring(1)),""===e||e===t}},3241:(e,t,r)=>{"use strict";r.d(t,{W:()=>o});var n=r(6154);const i="newrelic";function o(e={}){try{n.gm.dispatchEvent(new CustomEvent(i,{detail:e}))}catch(e){}}},1687:(e,t,r)=>{"use strict";r.d(t,{Ak:()=>c,Ze:()=>l,x3:()=>u});var n=r(7836),i=r(3606),o=r(860),a=r(2646);const s={};function c(e,t){const r={staged:!1,priority:o.P3[t]||0};d(e),s[e].get(t)||s[e].set(t,r)}function u(e,t){e&&s[e]&&(s[e].get(t)&&s[e].delete(t),h(e,t,!1),s[e].size&&f(e))}function d(e){if(!e)throw new Error("agentIdentifier required");s[e]||(s[e]=new Map)}function l(e="",t="feature",r=!1){if(d(e),!e||!s[e].get(t)||r)return h(e,t);s[e].get(t).staged=!0,f(e)}function f(e){const t=Array.from(s[e]);t.every((([e,t])=>t.staged))&&(t.sort(((e,t)=>e[1].priority-t[1].priority)),t.forEach((([t])=>{s[e].delete(t),h(e,t)})))}function h(e,t,r=!0){const o=e?n.ee.get(e):n.ee,s=i.i.handlers;if(!o.aborted&&o.backlog&&s){if(r){const e=o.backlog[t],r=s[t];if(r){for(let t=0;e&&t<e.length;++t)p(e[t],r);Object.entries(r).forEach((([e,t])=>{Object.values(t||{}).forEach((t=>{t[0]?.on&&t[0]?.context()instanceof a.y&&t[0].on(e,t[1])}))}))}}o.isolatedBacklog||delete s[t],o.backlog[t]=null,o.emit("drain-"+t,[])}}function p(e,t){var r=e[1];Object.values(t[r]||{}).forEach((t=>{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],o=e[2];n.apply(i,o)}}))}},7836:(e,t,r)=>{"use strict";r.d(t,{P:()=>c,ee:()=>u});var n=r(384),i=r(8990),o=r(3371),a=r(2646),s=r(5607);const c="nr@context:".concat(s.W),u=function e(t,r){var n={},s={},d={},l=!1;try{l=16===r.length&&(0,o.f)(r).isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,o){!1!==o&&(o=!0);if(u.aborted&&!i)return;t&&o&&t.emit(e,r,n);for(var a=h(n),c=g(e),d=c.length,l=0;l<d;l++)c[l].apply(a,r);var p=v()[s[e]];p&&p.push([f,e,r,a]);return a},get:m,listeners:g,context:h,buffer:function(e,t){const r=v();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach((([e,n])=>{s[n]=t,t in r||(r[t]=[])}))},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach((e=>{delete f.backlog[e]}))},isBuffering:function(e){return!!v()[s[e]]},debugId:r,backlog:l?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function h(e){return e&&e instanceof a.y?e:e?(0,i.I)(e,c,(()=>new a.y(c))):new a.y(c)}function p(e,t){n[e]=g(e).concat(t)}function g(e){return n[e]||[]}function m(t){return d[t]=d[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),d=(0,n.Zm)();d.ee||(d.ee=u)},2646:(e,t,r)=>{"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},9908:(e,t,r)=>{"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(7836).ee.get("handle");function i(e,t,r,i,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606:(e,t,r)=>{"use strict";r.d(t,{i:()=>o});var n=r(9908);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.d,i,e,t,r)}function a(e,t,r,i,o){o||(o="feature"),e||(e=n.d);var a=t[o]=t[o]||{};(a[r]=a[r]||[]).push([e,i])}},3878:(e,t,r)=>{"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function o(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>o,jT:()=>n,sp:()=>i})},5607:(e,t,r)=>{"use strict";r.d(t,{W:()=>n});const n=(0,r(9566).bz)()},9566:(e,t,r)=>{"use strict";r.d(t,{LA:()=>s,ZF:()=>c,bz:()=>a,el:()=>u});var n=r(6154);const i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";function o(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),i.split("").map((e=>"x"===e?o(t,r++).toString(16):"y"===e?(3&o()|8).toString(16):e)).join("")}function s(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,i=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var s=0;s<e;s++)a.push(o(r,i++).toString(16));return a.join("")}function c(){return s(16)}function u(){return s(32)}},2614:(e,t,r)=>{"use strict";r.d(t,{BB:()=>a,H3:()=>n,g:()=>u,iL:()=>c,tS:()=>s,uh:()=>i,wk:()=>o});const n="NRBA",i="SESSION",o=144e5,a=18e5,s={STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},c={SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},u={OFF:0,FULL:1,ERROR:2}},1863:(e,t,r)=>{"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},7485:(e,t,r)=>{"use strict";r.d(t,{D:()=>i});var n=r(6154);function i(e){if(0===(e||"").indexOf("data:"))return{protocol:"data"};try{const t=new URL(e,location.href),r={port:t.port,hostname:t.hostname,pathname:t.pathname,search:t.search,protocol:t.protocol.slice(0,t.protocol.indexOf(":")),sameOrigin:t.protocol===n.gm?.location?.protocol&&t.host===n.gm?.location?.host};return r.port&&""!==r.port||("http:"===t.protocol&&(r.port="80"),"https:"===t.protocol&&(r.port="443")),r.pathname&&""!==r.pathname?r.pathname.startsWith("/")||(r.pathname="/".concat(r.pathname)):r.pathname="/",r}catch(e){return{}}}},944:(e,t,r)=>{"use strict";function n(e,t){"function"==typeof console.debug&&console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t)}r.d(t,{R:()=>n})},5701:(e,t,r)=>{"use strict";r.d(t,{B:()=>o,t:()=>a});var n=r(3241);const i=new Set,o={};function a(e,t){const r=t.agentIdentifier;o[r]??={},e&&"object"==typeof e&&(i.has(r)||(t.ee.emit("rumresp",[e]),o[r]=e,i.add(r),(0,n.W)({agentIdentifier:r,loaded:!0,drained:!0,type:"lifecycle",name:"load",feature:void 0,data:e})))}},8990:(e,t,r)=>{"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389:(e,t,r)=>{"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout((()=>{i=clearTimeout(i)}),t)),n||(clearTimeout(i),i=setTimeout((()=>{e.apply(this,r)}),t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},3304:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(7836);const i=()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}};function o(e){try{return JSON.stringify(e,i())??""}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}return""}}},3496:(e,t,r)=>{"use strict";function n(e){return!e||!(!e.licenseKey||!e.applicationID)}function i(e,t){return!e||e.licenseKey===t.info.licenseKey&&e.applicationID===t.info.applicationID}r.d(t,{A:()=>i,I:()=>n})},5289:(e,t,r)=>{"use strict";r.d(t,{GG:()=>o,sB:()=>a});var n=r(3878);function i(){return"undefined"==typeof document||"complete"===document.readyState}function o(e,t){if(i())return e();(0,n.sp)("load",e,t)}function a(e){if(i())return e();(0,n.DD)("DOMContentLoaded",e)}},384:(e,t,r)=>{"use strict";r.d(t,{NT:()=>o,US:()=>d,Zm:()=>a,bQ:()=>c,dV:()=>s,nY:()=>u,pV:()=>l});var n=r(6154),i=r(1863);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function a(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function s(){let e=a();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket}),e}function c(e,t){let r=a();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t}function u(e){let t=a();return t.initializedAgents?.[e]}function d(e,t){a()[e]=t}function l(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},2843:(e,t,r)=>{"use strict";r.d(t,{u:()=>i});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",(function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)}),r,i)}},8139:(e,t,r)=>{"use strict";r.d(t,{u:()=>f});var n=r(7836),i=r(3434),o=r(8990),a=r(6154);const s={},c=a.gm.XMLHttpRequest,u="addEventListener",d="removeEventListener",l="nr@wrapped:".concat(n.P);function f(e){var t=function(e){return(e||n.ee).get("events")}(e);if(s[t.debugId]++)return t;s[t.debugId]=1;var r=(0,i.YM)(t,!0);function f(e){r.inPlace(e,[u,d],"-",p)}function p(e,t){return e[1]}return"getPrototypeOf"in Object&&(a.RI&&h(document,f),c&&h(c.prototype,f),h(a.gm,f)),t.on(u+"-start",(function(e,t){var n=e[1];if(null!==n&&("function"==typeof n||"object"==typeof n)){var i=(0,o.I)(n,l,(function(){var e={object:function(){if("function"!=typeof n.handleEvent)return;return n.handleEvent.apply(n,arguments)},function:n}[typeof n];return e?r(e,"fn-",null,e.name||"anonymous"):n}));this.wrapped=e[1]=i}})),t.on(d+"-start",(function(e){e[1]=this.wrapped||e[1]})),t}function h(e,t,...r){let n=e;for(;"object"==typeof n&&!Object.prototype.hasOwnProperty.call(n,u);)n=Object.getPrototypeOf(n);n&&t(n,...r)}},3434:(e,t,r)=>{"use strict";r.d(t,{Jt:()=>o,YM:()=>c});var n=r(7836),i=r(5607);const o="nr@original:".concat(i.W);var a=Object.prototype.hasOwnProperty,s=!1;function c(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n="");const a="-"===n.charAt(0);for(let s=0;s<t.length;s++){const c=t[s],u=e[c];d(u)||(e[c]=r(u,a?c+n:n,i,c,o))}},r.flag=o,r;function r(t,r,n,s,c){return d(t)?t:(r||(r=""),nrWrapper[o]=t,function(e,t,r){if(Object.defineProperty&&Object.keys)try{return Object.keys(e).forEach((function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})})),t}catch(e){u([e],r)}for(var n in e)a.call(e,n)&&(t[n]=e[n])}(t,nrWrapper,e),nrWrapper);function nrWrapper(){var o,a,d,l;try{a=this,o=[...arguments],d="function"==typeof n?n(o,a):n||{}}catch(t){u([t,"",[o,a,s],d],e)}i(r+"start",[o,a,s],d,c);try{return l=t.apply(a,o)}catch(e){throw i(r+"err",[o,a,e],d,c),e}finally{i(r+"end",[o,a,l],d,c)}}}function i(r,n,i,o){if(!s||t){var a=s;s=!0;try{e.emit(r,n,i,t,o)}catch(t){u([t,r,n,i],e)}s=a}}}function u(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function d(e){return!(e&&"function"==typeof e&&e.apply&&!e[o])}},9414:(e,t,r)=>{"use strict";r.d(t,{J:()=>c});var n=r(7836),i=r(2646),o=r(944),a=r(3434);const s=new Map;function c(e,t,r,c){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,o.R)(29);const u=function(e){return(e||n.ee).get("logger")}(e),d=(0,a.YM)(u),l=new i.y(n.P);l.level=c.level,l.customAttributes=c.customAttributes;const f=t[r]?.[a.Jt]||t[r];return s.set(f,l),d.inPlace(t,[r],"wrap-logger-",(()=>s.get(f))),u}},9300:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.ajax},3333:(e,t,r)=>{"use strict";r.d(t,{$v:()=>u,TZ:()=>n,Zp:()=>i,kd:()=>c,mq:()=>s,nf:()=>a,qN:()=>o});const n=r(860).K7.genericEvents,i=["auxclick","click","copy","keydown","paste","scrollend"],o=["focus","blur"],a=4,s=1e3,c=["PageAction","UserAction","BrowserPerformance"],u={MARKS:"experimental.marks",MEASURES:"experimental.measures",RESOURCES:"experimental.resources"}},6774:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.jserrors},993:(e,t,r)=>{"use strict";r.d(t,{A$:()=>o,ET:()=>a,TZ:()=>s,p_:()=>i});var n=r(860);const i={ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"},o={OFF:0,ERROR:1,WARN:2,INFO:3,DEBUG:4,TRACE:5},a="log",s=n.K7.logging},3785:(e,t,r)=>{"use strict";r.d(t,{R:()=>c,b:()=>u});var n=r(9908),i=r(1863),o=r(860),a=r(8154),s=r(993);function c(e,t,r={},c=s.p_.INFO,u,d=(0,i.t)()){(0,n.p)(a.xV,["API/logging/".concat(c.toLowerCase(),"/called")],void 0,o.K7.metrics,e),(0,n.p)(s.ET,[d,t,r,c,u],void 0,o.K7.logging,e)}function u(e){return"string"==typeof e&&Object.values(s.p_).some((t=>t===e.toUpperCase().trim()))}},8154:(e,t,r)=>{"use strict";r.d(t,{z_:()=>o,XG:()=>s,TZ:()=>n,rs:()=>i,xV:()=>a});r(6154),r(9566),r(384);const n=r(860).K7.metrics,i="sm",o="cm",a="storeSupportabilityMetrics",s="storeEventMetrics"},6630:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewEvent},782:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewTiming},6344:(e,t,r)=>{"use strict";r.d(t,{BB:()=>d,G4:()=>o,Qb:()=>l,TZ:()=>i,Ug:()=>a,_s:()=>s,bc:()=>u,yP:()=>c});var n=r(2614);const i=r(860).K7.sessionReplay,o={RECORD:"recordReplay",PAUSE:"pauseReplay",REPLAY_RUNNING:"replayRunning",ERROR_DURING_REPLAY:"errorDuringReplay"},a=.12,s={DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},c={[n.g.ERROR]:15e3,[n.g.FULL]:3e5,[n.g.OFF]:0},u={RESET:{message:"Session was reset",sm:"Reset"},IMPORT:{message:"Recorder failed to import",sm:"Import"},TOO_MANY:{message:"429: Too Many Requests",sm:"Too-Many"},TOO_BIG:{message:"Payload was too large",sm:"Too-Big"},CROSS_TAB:{message:"Session Entity was set to OFF on another tab",sm:"Cross-Tab"},ENTITLEMENTS:{message:"Session Replay is not allowed and will not be started",sm:"Entitlement"}},d=5e3,l={API:"api"}},5270:(e,t,r)=>{"use strict";r.d(t,{Aw:()=>c,CT:()=>u,SR:()=>s,rF:()=>d});var n=r(384),i=r(9417),o=r(7767),a=r(6154);function s(e){return!!(0,n.dV)().o.MO&&(0,o.V)(e)&&!0===(0,i.gD)(e,"session_trace.enabled")}function c(e){return!0===(0,i.gD)(e,"session_replay.preload")&&s(e)}function u(e,t){const r=t.correctAbsoluteTimestamp(e);return{originalTimestamp:e,correctedTimestamp:r,timestampDiff:e-r,originTime:a.WN,correctedOriginTime:t.correctedOriginTime,originTimeDiff:Math.floor(a.WN-t.correctedOriginTime)}}function d(e,t){try{if("string"==typeof t?.type){if("password"===t.type.toLowerCase())return"*".repeat(e?.length||0);if(void 0!==t?.dataset?.nrUnmask||t?.classList?.contains("nr-unmask"))return e}}catch(e){}return"string"==typeof e?e.replace(/[\S]/g,"*"):"*".repeat(e?.length||0)}},3738:(e,t,r)=>{"use strict";r.d(t,{He:()=>i,Kp:()=>s,Lc:()=>u,Rz:()=>d,TZ:()=>n,bD:()=>o,d3:()=>a,jx:()=>l,uP:()=>c});const n=r(860).K7.sessionTrace,i="bstResource",o="resource",a="-start",s="-end",c="fn"+a,u="fn"+s,d="pushState",l=1e3},3962:(e,t,r)=>{"use strict";r.d(t,{AM:()=>o,O2:()=>c,Qu:()=>u,TZ:()=>s,ih:()=>d,pP:()=>a,tC:()=>i});var n=r(860);const i=["click","keydown","submit","popstate"],o="api",a="initialPageLoad",s=n.K7.softNav,c={INITIAL_PAGE_LOAD:"",ROUTE_CHANGE:1,UNSPECIFIED:2},u={INTERACTION:1,AJAX:2,CUSTOM_END:3,CUSTOM_TRACER:4},d={IP:"in progress",FIN:"finished",CAN:"cancelled"}},7378:(e,t,r)=>{"use strict";r.d(t,{$p:()=>x,BR:()=>b,Kp:()=>R,L3:()=>y,Lc:()=>c,NC:()=>o,SG:()=>d,TZ:()=>i,U6:()=>p,UT:()=>m,d3:()=>w,dT:()=>f,e5:()=>E,gx:()=>v,l9:()=>l,oW:()=>h,op:()=>g,rw:()=>u,tH:()=>T,uP:()=>s,wW:()=>A,xq:()=>a});var n=r(384);const i=r(860).K7.spa,o=["click","submit","keypress","keydown","keyup","change"],a=999,s="fn-start",c="fn-end",u="cb-start",d="api-ixn-",l="remaining",f="interaction",h="spaNode",p="jsonpNode",g="fetch-start",m="fetch-done",v="fetch-body-",b="jsonp-end",y=(0,n.dV)().o.ST,w="-start",R="-end",x="-body",A="cb"+R,E="jsTime",T="fetch"},4234:(e,t,r)=>{"use strict";r.d(t,{W:()=>o});var n=r(7836),i=r(1687);class o{constructor(e,t){this.agentIdentifier=e,this.ee=n.ee.get(e),this.featureName=t,this.blocked=!1}deregisterDrain(){(0,i.x3)(this.agentIdentifier,this.featureName)}}},7767:(e,t,r)=>{"use strict";r.d(t,{V:()=>o});var n=r(9417),i=r(6154);const o=e=>i.RI&&!0===(0,n.gD)(e,"privacy.cookies_enabled")},2110:(e,t,r)=>{"use strict";r.d(t,{j:()=>j});var n=r(860),i=r(9908),o=r(1687),a=r(5289),s=r(6154),c=r(944),u=r(8154),d=r(384),l=r(6344);const f=["setErrorHandler","finished","addToTrace","addRelease","recordCustomEvent","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError","setUserId","setApplicationVersion","start",l.G4.RECORD,l.G4.PAUSE,"log","wrapLogger","register"],h=["setErrorHandler","finished","addToTrace","addRelease"];var p=r(1863),g=r(2614),m=r(993),v=r(3785),b=r(9414),y=r(3496);var w=r(3241),R=r(5701);function x(){const e=(0,d.pV)();f.forEach((t=>{e[t]=(...r)=>function(t,...r){let n=[];return Object.values(e.initializedAgents).forEach((e=>{e&&e.runtime?e.exposed&&e[t]&&"micro-agent"!==e.runtime.loaderType&&n.push(e[t](...r)):(0,c.R)(38,t)})),n[0]}(t,...r)}))}const A={};function E(e,t){t||(0,o.Ak)(e.agentIdentifier,"api");const d=e.ee.get("tracer");A[e.agentIdentifier]=g.g.OFF,e.ee.on(l.G4.REPLAY_RUNNING,(t=>{A[e.agentIdentifier]=t}));const f="api-",x=f+"ixn-",E={addPageAction:function(e,t,r,i=(0,p.t)()){N(f,"addPageAction",!0,n.K7.genericEvents,i)(e,t,r)},log:function(t,{customAttributes:r={},level:o=m.p_.INFO}={},a,s=(0,p.t)()){(0,i.p)(u.xV,["API/log/called"],void 0,n.K7.metrics,e.ee),(0,v.R)(e.ee,t,r,o,a,s)},noticeError:function(t,r,o,a=(0,p.t)()){"string"==typeof t&&(t=new Error(t)),(0,i.p)(u.xV,["API/noticeError/called"],void 0,n.K7.metrics,e.ee),(0,i.p)("err",[t,a,!1,r,!!A[e.agentIdentifier],void 0,o],void 0,n.K7.jserrors,e.ee)}};function T(t,r,n,i){const o=e.info;return null===r?delete o.jsAttributes[t]:e.info={...e.info,jsAttributes:{...o.jsAttributes,[t]:r}},N(f,n,!0,i||null===r?"session":void 0)(t,r)}function S(){}e.register=function(t){return(0,i.p)(u.xV,["API/register/called"],void 0,n.K7.metrics,e.ee),function(e,t,r){const o={};let a,s;(0,c.R)(54,"newrelic.register"),e.init.api.allow_registered_children||(a=()=>(0,c.R)(55)),r&&(0,y.I)(r)||(a=()=>(0,c.R)(48,r));const d={addPageAction:(e,n={})=>{l(t.addPageAction,[e,{...o,...n}],r)},log:(e,n={})=>{l(t.log,[e,{...n,customAttributes:{...o,...n.customAttributes||{}}}],r)},noticeError:(e,n={})=>{l(t.noticeError,[e,{...o,...n}],r)},setApplicationVersion:e=>{o["application.version"]=e},setCustomAttribute:(e,t)=>{o[e]=t},setUserId:e=>{o["enduser.id"]=e},metadata:{customAttributes:o,target:r,get connected(){return s||Promise.reject(new Error("Failed to connect"))}}};a?a():s=new Promise(((t,n)=>{try{const i=e.runtime?.entityManager;let a=!!i?.get().entityGuid,s=i?.getEntityGuidFor(r.licenseKey,r.applicationID),c=!!s;if(a&&c)r.entityGuid=s,t(d);else{const u=setTimeout((()=>n(new Error("Failed to connect - Timeout"))),15e3);function l(n){(0,y.A)(n,e)?a||=!0:r.licenseKey===n.licenseKey&&r.applicationID===n.applicationID&&(c=!0,r.entityGuid=n.entityGuid),a&&c&&(clearTimeout(u),e.ee.removeEventListener("entity-added",l),t(d))}e.ee.emit("api-send-rum",[o,r]),e.ee.on("entity-added",l)}}catch(f){n(f)}}));const l=async(t,r,o)=>{if(a)return a();const d=(0,p.t)();(0,i.p)(u.xV,["API/register/".concat(t.name,"/called")],void 0,n.K7.metrics,e.ee);try{await s;const n=e.init.api.duplicate_registered_data;(!0===n||Array.isArray(n)&&n.includes(o.entityGuid))&&t(...r,void 0,d),t(...r,o.entityGuid,d)}catch(e){(0,c.R)(50,e)}};return d}(e,E,t)},e.log=function(e,t){E.log(e,t)},e.wrapLogger=(t,r,{customAttributes:o={},level:a=m.p_.INFO}={})=>{(0,i.p)(u.xV,["API/wrapLogger/called"],void 0,n.K7.metrics,e.ee),(0,b.J)(e.ee,t,r,{customAttributes:o,level:a})},h.forEach((t=>{e[t]=N(f,t,!0,"api")})),e.addPageAction=function(e,t){E.addPageAction(e,t)},e.recordCustomEvent=N(f,"recordCustomEvent",!0,n.K7.genericEvents),e.setPageViewName=function(t,r){if("string"==typeof t)return"/"!==t.charAt(0)&&(t="/"+t),e.runtime.customTransaction=(r||"http://custom.transaction")+t,N(f,"setPageViewName",!0)()},e.setCustomAttribute=function(e,t,r=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof t)||null===t)return T(e,t,"setCustomAttribute",r);(0,c.R)(40,typeof t)}else(0,c.R)(39,typeof e)},e.setUserId=function(e){if("string"==typeof e||null===e)return T("enduser.id",e,"setUserId",!0);(0,c.R)(41,typeof e)},e.setApplicationVersion=function(e){if("string"==typeof e||null===e)return T("application.version",e,"setApplicationVersion",!1);(0,c.R)(42,typeof e)},e.start=()=>{try{(0,i.p)(u.xV,["API/start/called"],void 0,n.K7.metrics,e.ee),e.ee.emit("manual-start-all")}catch(e){(0,c.R)(23,e)}},e[l.G4.RECORD]=function(){(0,i.p)(u.xV,["API/recordReplay/called"],void 0,n.K7.metrics,e.ee),(0,i.p)(l.G4.RECORD,[],void 0,n.K7.sessionReplay,e.ee)},e[l.G4.PAUSE]=function(){(0,i.p)(u.xV,["API/pauseReplay/called"],void 0,n.K7.metrics,e.ee),(0,i.p)(l.G4.PAUSE,[],void 0,n.K7.sessionReplay,e.ee)},e.interaction=function(e){return(new S).get("object"==typeof e?e:{})};const I=S.prototype={createTracer:function(t,r){var o={},a=this,s="function"==typeof r;return(0,i.p)(u.xV,["API/createTracer/called"],void 0,n.K7.metrics,e.ee),e.runSoftNavOverSpa||(0,i.p)(x+"tracer",[(0,p.t)(),t,o],a,n.K7.spa,e.ee),function(){if(d.emit((s?"":"no-")+"fn-start",[(0,p.t)(),a,s],o),s)try{return r.apply(this,arguments)}catch(e){const t="string"==typeof e?new Error(e):e;throw d.emit("fn-err",[arguments,this,t],o),t}finally{d.emit("fn-end",[(0,p.t)()],o)}}}};function N(t,r,o,a,s=(0,p.t)()){return function(){return(0,i.p)(u.xV,["API/"+r+"/called"],void 0,n.K7.metrics,e.ee),(0,w.W)({agentIdentifier:e.agentIdentifier,drained:!!R.B?.[e.agentIdentifier],type:"data",name:"api",feature:t+r,data:{notSpa:o,bufferGroup:a}}),a&&(0,i.p)(t+r,[s,...arguments],o?null:this,a,e.ee),o?void 0:this}}function _(){r.e(478).then(r.bind(r,8778)).then((({setAsyncAPI:t})=>{t(e),(0,o.Ze)(e.agentIdentifier,"api")})).catch((t=>{(0,c.R)(27,t),e.ee.abort()}))}return["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((t=>{I[t]=function(){return N.apply(this,[x,t,void 0,e.runSoftNavOverSpa?n.K7.softNav:n.K7.spa]).apply(this,arguments)}})),e.setCurrentRouteName=function(){return e.runSoftNavOverSpa?N(x,"routeName",void 0,n.K7.softNav)(...arguments):N(f,"routeName",!0,n.K7.spa)(...arguments)},e.noticeError=function(e,t){E.noticeError(e,t)},s.RI?(0,a.GG)((()=>_()),!0):_(),!0}var T=r(2555),S=r(9417),I=r(5603),N=r(3371);const _=e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e};var O=r(7836);const P=new Set;function j(e,t={},r,n){let{init:i,info:o,loader_config:a,runtime:c={},exposed:u=!0}=t;c.loaderType=r;const l=(0,d.pV)();o||(i=l.init,o=l.info,a=l.loader_config),(0,S.xN)(e.agentIdentifier,i||{}),(0,I.a)(e.agentIdentifier,a||{}),o.jsAttributes??={},s.bv&&(o.jsAttributes.isWorker=!0),(0,T.x1)(e.agentIdentifier,o);const f=e.init,h=[o.beacon,o.errorBeacon];P.has(e.agentIdentifier)||(f.proxy.assets&&(_(f.proxy.assets),h.push(f.proxy.assets)),f.proxy.beacon&&h.push(f.proxy.beacon),x(),(0,d.US)("activatedFeatures",R.B),e.runSoftNavOverSpa&&=!0===f.soft_navigations.enabled&&f.feature_flags.includes("soft_nav")),c.denyList=[...f.ajax.deny_list||[],...f.ajax.block_internal?h:[]],c.ptid=e.agentIdentifier,(0,N.V)(e.agentIdentifier,c),P.has(e.agentIdentifier)||(e.ee=O.ee.get(e.agentIdentifier),e.exposed=u,E(e,n),(0,w.W)({agentIdentifier:e.agentIdentifier,drained:!!R.B?.[e.agentIdentifier],type:"lifecycle",name:"initialize",feature:void 0,data:e.config})),P.add(e.agentIdentifier)}},8374:(e,t,r)=>{r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860:(e,t,r)=>{"use strict";r.d(t,{$J:()=>d,K7:()=>c,P3:()=>u,XX:()=>i,Yy:()=>s,df:()=>o,qY:()=>n,v4:()=>a});const n="events",i="jserrors",o="browser/blobs",a="rum",s="browser/logs",c={ajax:"ajax",genericEvents:"generic_events",jserrors:i,logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations",spa:"spa"},u={[c.pageViewEvent]:1,[c.pageViewTiming]:2,[c.metrics]:3,[c.jserrors]:4,[c.spa]:5,[c.ajax]:6,[c.sessionTrace]:7,[c.softNav]:8,[c.sessionReplay]:9,[c.logging]:10,[c.genericEvents]:11},d={[c.pageViewEvent]:a,[c.pageViewTiming]:n,[c.ajax]:n,[c.spa]:n,[c.softNav]:n,[c.metrics]:i,[c.jserrors]:i,[c.sessionTrace]:o,[c.sessionReplay]:o,[c.logging]:s,[c.genericEvents]:"ins"}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>({212:"nr-spa-compressor",249:"nr-spa-recorder",478:"nr-spa"}[e]+"-1.288.1.min.js"),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.288.1.PROD:",i.l=(r,n,o,a)=>{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var u=document.getElementsByTagName("script"),d=0;d<u.length;d++){var l=u[d];if(l.getAttribute("src")==r||l.getAttribute("data-webpack")==t+o){s=l;break}}if(!s){c=!0;var f={478:"sha512-A197RDwDZ/NC6lb/PMIOFBrBanO57cULL4UpUepScgzjZPIPBBvfu4q0KzMhC7C3O5hKrc4kmK4aLpo+cShQzw==",249:"sha512-vLsg6+YBYhjurdM2WzfhBAhBVePWtoDu80qykIlpvNN2ZI/vQW6RtaLjxO4qURR+uoqAzj3rmr/WXrut/dMk6w==",212:"sha512-zp1Z+7gPpQlCybgSJryGY0yfN1jgDOdumlzqhYMlkNM6WECh2j0PyauwuXIRk8U4vpuwRq7tFWKekZv0Lednvw=="};(s=document.createElement("script")).charset="utf-8",s.timeout=120,i.nc&&s.setAttribute("nonce",i.nc),s.setAttribute("data-webpack",t+o),s.src=r,0!==s.src.indexOf(window.location.origin+"/")&&(s.crossOrigin="anonymous"),f[a]&&(s.integrity=f[a])}e[r]=[n];var h=(t,n)=>{s.onerror=s.onload=null,clearTimeout(p);var i=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},p=setTimeout(h.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=h.bind(null,s.onerror),s.onload=h.bind(null,s.onload),c&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="https://js-agent.newrelic.com/",(()=>{var e={38:0,788:0};i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=>n=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,n[1](s)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,o,[a,s,c]=r,u=0;if(a.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(c)c(i)}for(t&&t(r);u<a.length;u++)o=a[u],i.o(e,o)&&e[o]&&e[o][0](),e[o]=0},r=self["webpackChunk:NRBA-1.288.1.PROD"]=self["webpackChunk:NRBA-1.288.1.PROD"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=>{"use strict";i(8374);var e=i(944),t=i(6344),r=i(9566);class n{agentIdentifier;constructor(){this.agentIdentifier=(0,r.LA)(16)}#e(t,...r){if(this[t]!==n.prototype[t])return this[t](...r);(0,e.R)(35,t)}addPageAction(e,t){return this.#e("addPageAction",e,t)}register(e){return this.#e("register",e)}recordCustomEvent(e,t){return this.#e("recordCustomEvent",e,t)}setPageViewName(e,t){return this.#e("setPageViewName",e,t)}setCustomAttribute(e,t,r){return this.#e("setCustomAttribute",e,t,r)}noticeError(e,t){return this.#e("noticeError",e,t)}setUserId(e){return this.#e("setUserId",e)}setApplicationVersion(e){return this.#e("setApplicationVersion",e)}setErrorHandler(e){return this.#e("setErrorHandler",e)}addRelease(e,t){return this.#e("addRelease",e,t)}log(e,t){return this.#e("log",e,t)}}class o extends n{#e(t,...r){if(this[t]!==o.prototype[t]&&this[t]!==n.prototype[t])return this[t](...r);(0,e.R)(35,t)}start(){return this.#e("start")}finished(e){return this.#e("finished",e)}recordReplay(){return this.#e(t.G4.RECORD)}pauseReplay(){return this.#e(t.G4.PAUSE)}addToTrace(e){return this.#e("addToTrace",e)}setCurrentRouteName(e){return this.#e("setCurrentRouteName",e)}interaction(){return this.#e("interaction")}wrapLogger(e,t,r){return this.#e("wrapLogger",e,t,r)}}var a=i(860),s=i(9417);const c=Object.values(a.K7);function u(e){const t={};return c.forEach((r=>{t[r]=function(e,t){return!0===(0,s.gD)(t,"".concat(e,".enabled"))}(r,e)})),t}var d=i(2110);var l=i(9908),f=i(1687),h=i(4234),p=i(5289),g=i(6154),m=i(5270),v=i(7767),b=i(6389);class y extends h.W{constructor(e,t,r=!0){super(e.agentIdentifier,t),this.auto=r,this.abortHandler=void 0,this.featAggregate=void 0,this.onAggregateImported=void 0,!1===e.init[this.featureName].autoStart&&(this.auto=!1),this.auto?(0,f.Ak)(e.agentIdentifier,t):this.ee.on("manual-start-all",(0,b.J)((()=>{(0,f.Ak)(e.agentIdentifier,this.featureName),this.auto=!0,this.importAggregator(e)})))}importAggregator(t,r={}){if(this.featAggregate||!this.auto)return;let n;this.onAggregateImported=new Promise((e=>{n=e}));const o=async()=>{let o;try{if((0,v.V)(this.agentIdentifier)){const{setupAgentSession:e}=await i.e(478).then(i.bind(i,6526));o=e(t)}}catch(t){(0,e.R)(20,t),this.ee.emit("internal-error",[t]),this.featureName===a.K7.sessionReplay&&this.abortHandler?.()}try{if(!this.#t(this.featureName,o))return(0,f.Ze)(this.agentIdentifier,this.featureName),void n(!1);const{lazyFeatureLoader:e}=await i.e(478).then(i.bind(i,6103)),{Aggregate:a}=await e(this.featureName,"aggregate");this.featAggregate=new a(t,r),t.runtime.harvester.initializedAggregates.push(this.featAggregate),n(!0)}catch(t){(0,e.R)(34,t),this.abortHandler?.(),(0,f.Ze)(this.agentIdentifier,this.featureName,!0),n(!1),this.ee&&this.ee.abort()}};g.RI?(0,p.GG)((()=>o()),!0):o()}#t(e,t){switch(e){case a.K7.sessionReplay:return(0,m.SR)(this.agentIdentifier)&&!!t;case a.K7.sessionTrace:return!!t;default:return!0}}}var w=i(6630);class R extends y{static featureName=w.T;constructor(e,t=!0){super(e,w.T,t),this.ee.on("api-send-rum",((e,t)=>(0,l.p)("send-rum",[e,t],void 0,this.featureName,this.ee))),this.importAggregator(e)}}var x=i(384);var A=i(2843),E=i(3878),T=i(782),S=i(1863);class I extends y{static featureName=T.T;constructor(e,t=!0){super(e,T.T,t),g.RI&&((0,A.u)((()=>(0,l.p)("docHidden",[(0,S.t)()],void 0,T.T,this.ee)),!0),(0,E.sp)("pagehide",(()=>(0,l.p)("winPagehide",[(0,S.t)()],void 0,T.T,this.ee))),this.importAggregator(e))}}var N=i(8154);class _ extends y{static featureName=N.TZ;constructor(e,t=!0){super(e,N.TZ,t),g.RI&&document.addEventListener("securitypolicyviolation",(e=>{(0,l.p)(N.xV,["Generic/CSPViolation/Detected"],void 0,this.featureName,this.ee)})),this.importAggregator(e)}}var O=i(6774),P=i(3304);class j{constructor(e,t,r,n,i){this.name="UncaughtError",this.message="string"==typeof e?e:(0,P.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function C(e){return D(e)?e:new j(void 0!==e?.message?e.message:e,e?.filename||e?.sourceURL,e?.lineno||e?.line,e?.colno||e?.col,e?.__newrelic)}function k(e){const t="Unhandled Promise Rejection: ";if(!e?.reason)return;if(D(e.reason)){try{e.reason.message.startsWith(t)||(e.reason.message=t+e.reason.message)}catch(e){}return C(e.reason)}const r=C(e.reason);return(r.message||"").startsWith(t)||(r.message=t+r.message),r}function L(e){if(e.error instanceof SyntaxError&&!/:\d+$/.test(e.error.stack?.trim())){const t=new j(e.message,e.filename,e.lineno,e.colno,e.error.__newrelic);return t.name=SyntaxError.name,t}return D(e.error)?e.error:C(e)}function D(e){return e instanceof Error&&!!e.stack}class M extends y{static featureName=O.T;#r=!1;constructor(e,r=!0){super(e,O.T,r);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on("internal-error",((e,t)=>{this.abortHandler&&(0,l.p)("ierr",[C(e),(0,S.t)(),!0,{},this.#r,t],void 0,this.featureName,this.ee)})),this.ee.on(t.G4.REPLAY_RUNNING,(e=>{this.#r=e})),g.gm.addEventListener("unhandledrejection",(e=>{this.abortHandler&&(0,l.p)("err",[k(e),(0,S.t)(),!1,{unhandledPromiseRejection:1},this.#r],void 0,this.featureName,this.ee)}),(0,E.jT)(!1,this.removeOnAbort?.signal)),g.gm.addEventListener("error",(e=>{this.abortHandler&&(0,l.p)("err",[L(e),(0,S.t)(),!1,{},this.#r],void 0,this.featureName,this.ee)}),(0,E.jT)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e)}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var H=i(8990);let K=1;function U(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===g.gm?0:(0,H.I)(e,"nr@id",(function(){return K++}))}function G(e){if("string"==typeof e&&e.length)return e.length;if("object"==typeof e){if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&e.byteLength)return e.byteLength;if("undefined"!=typeof Blob&&e instanceof Blob&&e.size)return e.size;if(!("undefined"!=typeof FormData&&e instanceof FormData))try{return(0,P.A)(e).length}catch(e){return}}}var V=i(8139),F=i(7836),B=i(3434);const W={},z=["open","send"];function q(t){var r=t||F.ee;const n=function(e){return(e||F.ee).get("xhr")}(r);if(void 0===g.gm.XMLHttpRequest)return n;if(W[n.debugId]++)return n;W[n.debugId]=1,(0,V.u)(r);var i=(0,B.YM)(n),o=g.gm.XMLHttpRequest,a=g.gm.MutationObserver,s=g.gm.Promise,c=g.gm.setInterval,u="readystatechange",d=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],l=[],f=g.gm.XMLHttpRequest=function(t){const r=new o(t),a=n.context(r);try{n.emit("new-xhr",[r],a),r.addEventListener(u,(s=a,function(){var e=this;e.readyState>3&&!s.resolved&&(s.resolved=!0,n.emit("xhr-resolved",[],e)),i.inPlace(e,d,"fn-",y)}),(0,E.jT)(!1))}catch(t){(0,e.R)(15,t);try{n.emit("internal-error",[t])}catch(e){}}var s;return r};function h(e,t){i.inPlace(t,["onreadystatechange"],"fn-",y)}if(function(e,t){for(var r in e)t[r]=e[r]}(o,f),f.prototype=o.prototype,i.inPlace(f.prototype,z,"-xhr-",y),n.on("send-xhr-start",(function(e,t){h(e,t),function(e){l.push(e),a&&(p?p.then(b):c?c(b):(m=-m,v.data=m))}(t)})),n.on("open-xhr-start",h),a){var p=s&&s.resolve();if(!c&&!s){var m=1,v=document.createTextNode(m);new a(b).observe(v,{characterData:!0})}}else r.on("fn-end",(function(e){e[0]&&e[0].type===u||b()}));function b(){for(var e=0;e<l.length;e++)h(0,l[e]);l.length&&(l=[])}function y(e,t){return t}return n}var Z="fetch-",Y=Z+"body-",J=["arrayBuffer","blob","json","text","formData"],X=g.gm.Request,Q=g.gm.Response,ee="prototype";const te={};function re(e){const t=function(e){return(e||F.ee).get("fetch")}(e);if(!(X&&Q&&g.gm.fetch))return t;if(te[t.debugId]++)return t;function r(e,r,n){var i=e[r];"function"==typeof i&&(e[r]=function(){var e,r=[...arguments],o={};t.emit(n+"before-start",[r],o),o[F.P]&&o[F.P].dt&&(e=o[F.P].dt);var a=i.apply(this,r);return t.emit(n+"start",[r,e],a),a.then((function(e){return t.emit(n+"end",[null,e],a),e}),(function(e){throw t.emit(n+"end",[e],a),e}))})}return te[t.debugId]=1,J.forEach((e=>{r(X[ee],e,Y),r(Q[ee],e,Y)})),r(g.gm,"fetch",Z),t.on(Z+"end",(function(e,r){var n=this;if(r){var i=r.headers.get("content-length");null!==i&&(n.rxSize=i),t.emit(Z+"done",[null,r],n)}else t.emit(Z+"done",[e],n)})),t}var ne=i(7485),ie=i(5603);class oe{constructor(e){this.agentIdentifier=e}generateTracePayload(e){if(!this.shouldGenerateTrace(e))return null;var t=(0,ie.o)(this.agentIdentifier);if(!t)return null;var n=(t.accountID||"").toString()||null,i=(t.agentID||"").toString()||null,o=(t.trustKey||"").toString()||null;if(!n||!i)return null;var a=(0,r.ZF)(),s=(0,r.el)(),c=Date.now(),u={spanId:a,traceId:s,timestamp:c};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(u.traceContextParentHeader=this.generateTraceContextParentHeader(a,s),u.traceContextStateHeader=this.generateTraceContextStateHeader(a,c,n,i,o)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(u.newrelicHeader=this.generateTraceHeader(a,s,c,n,i,o)),u}generateTraceContextParentHeader(e,t){return"00-"+t+"-"+e+"-01"}generateTraceContextStateHeader(e,t,r,n,i){return i+"@nr=0-1-"+r+"-"+n+"-"+e+"----"+t}generateTraceHeader(e,t,r,n,i,o){if(!("function"==typeof g.gm?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return o&&n!==o&&(a.d.tk=o),btoa((0,P.A)(a))}shouldGenerateTrace(e){return this.isDtEnabled()&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1,r={};if((0,s.gD)(this.agentIdentifier,"distributed_tracing")&&(r=(0,s.D0)(this.agentIdentifier).distributed_tracing),e.sameOrigin)t=!0;else if(r.allowed_origins instanceof Array)for(var n=0;n<r.allowed_origins.length;n++){var i=(0,ne.D)(r.allowed_origins[n]);if(e.hostname===i.hostname&&e.protocol===i.protocol&&e.port===i.port){t=!0;break}}return t}isDtEnabled(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.enabled}excludeNewrelicHeader(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.cors_use_tracecontext_headers}}var ae=i(9300),se=i(7295),ce=["load","error","abort","timeout"],ue=ce.length,de=(0,x.dV)().o.REQ,le=(0,x.dV)().o.XHR;const fe="X-NewRelic-App-Data";class he extends y{static featureName=ae.T;constructor(e,t=!0){super(e,ae.T,t),this.dt=new oe(e.agentIdentifier),this.handler=(e,t,r,n)=>(0,l.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:"xhr",fetch:"fetch",beacon:"beacon"};g.gm?.performance?.getEntriesByType("resource").forEach((t=>{if(t.initiatorType in e&&0!==t.responseStatus){const r={status:t.responseStatus},n={rxSize:t.transferSize,duration:Math.floor(t.duration),cbTime:0};pe(r,t.name),this.handler("xhr",[r,n,t.startTime,t.responseEnd,e[t.initiatorType]],void 0,a.K7.ajax)}}))}catch(e){}re(this.ee),q(this.ee),function(e,t,r,n){function i(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=x,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},e.addEventListener("load",(function(r){A(t,e)}),(0,E.jT)(!1)),g.lR||e.addEventListener("progress",(function(e){t.lastSize=e.loaded}),(0,E.jT)(!1))}function o(e){this.params={method:e[0]},pe(this,e[1]),this.metrics={}}function s(t,r){e.loader_config.xpid&&this.sameOrigin&&r.setRequestHeader("X-NewRelic-ID",e.loader_config.xpid);var i=n.generateTracePayload(this.parsedOrigin);if(i){var o=!1;i.newrelicHeader&&(r.setRequestHeader("newrelic",i.newrelicHeader),o=!0),i.traceContextParentHeader&&(r.setRequestHeader("traceparent",i.traceContextParentHeader),i.traceContextStateHeader&&r.setRequestHeader("tracestate",i.traceContextStateHeader),o=!0),o&&(this.dt=i)}}function c(e,r){var n=this.metrics,i=e[0],o=this;if(n&&i){var a=G(i);a&&(n.txSize=a)}this.startTime=(0,S.t)(),this.body=i,this.listener=function(e){try{"abort"!==e.type||o.loadCaptureCalled||(o.params.aborted=!0),("load"!==e.type||o.called===o.totalCbs&&(o.onloadCalled||"function"!=typeof r.onload)&&"function"==typeof o.end)&&o.end(r)}catch(e){try{t.emit("internal-error",[e])}catch(e){}}};for(var s=0;s<ue;s++)r.addEventListener(ce[s],this.listener,(0,E.jT)(!1))}function u(e,t,r){this.cbTime+=e,t?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof r.onload||"function"!=typeof this.end||this.end(r)}function d(e,t){var r=""+U(e)+!!t;this.xhrGuids&&!this.xhrGuids[r]&&(this.xhrGuids[r]=!0,this.totalCbs+=1)}function f(e,t){var r=""+U(e)+!!t;this.xhrGuids&&this.xhrGuids[r]&&(delete this.xhrGuids[r],this.totalCbs-=1)}function h(){this.endTime=(0,S.t)()}function p(e,r){r instanceof le&&"load"===e[0]&&t.emit("xhr-load-added",[e[1],e[2]],r)}function m(e,r){r instanceof le&&"load"===e[0]&&t.emit("xhr-load-removed",[e[1],e[2]],r)}function v(e,t,r){t instanceof le&&("onload"===r&&(this.onload=!0),("load"===(e[0]&&e[0].type)||this.onload)&&(this.xhrCbStart=(0,S.t)()))}function b(e,r){this.xhrCbStart&&t.emit("xhr-cb-time",[(0,S.t)()-this.xhrCbStart,this.onload,r],r)}function y(e){var t,r=e[1]||{};if("string"==typeof e[0]?0===(t=e[0]).length&&g.RI&&(t=""+g.gm.location.href):e[0]&&e[0].url?t=e[0].url:g.gm?.URL&&e[0]&&e[0]instanceof URL?t=e[0].href:"function"==typeof e[0].toString&&(t=e[0].toString()),"string"==typeof t&&0!==t.length){t&&(this.parsedOrigin=(0,ne.D)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var i=n.generateTracePayload(this.parsedOrigin);if(i&&(i.newrelicHeader||i.traceContextParentHeader))if(e[0]&&e[0].headers)s(e[0].headers,i)&&(this.dt=i);else{var o={};for(var a in r)o[a]=r[a];o.headers=new Headers(r.headers||{}),s(o.headers,i)&&(this.dt=i),e.length>1?e[1]=o:e.push(o)}}function s(e,t){var r=!1;return t.newrelicHeader&&(e.set("newrelic",t.newrelicHeader),r=!0),t.traceContextParentHeader&&(e.set("traceparent",t.traceContextParentHeader),t.traceContextStateHeader&&e.set("tracestate",t.traceContextStateHeader),r=!0),r}}function w(e,t){this.params={},this.metrics={},this.startTime=(0,S.t)(),this.dt=t,e.length>=1&&(this.target=e[0]),e.length>=2&&(this.opts=e[1]);var r,n=this.opts||{},i=this.target;"string"==typeof i?r=i:"object"==typeof i&&i instanceof de?r=i.url:g.gm?.URL&&"object"==typeof i&&i instanceof URL&&(r=i.href),pe(this,r);var o=(""+(i&&i instanceof de&&i.method||n.method||"GET")).toUpperCase();this.params.method=o,this.body=n.body,this.txSize=G(n.body)||0}function R(e,t){if(this.endTime=(0,S.t)(),this.params||(this.params={}),(0,se.iW)(this.params))return;let n;this.params.status=t?t.status:0,"string"==typeof this.rxSize&&this.rxSize.length>0&&(n=+this.rxSize);const i={txSize:this.txSize,rxSize:n,duration:(0,S.t)()-this.startTime};r("xhr",[this.params,i,this.startTime,this.endTime,"fetch"],this,a.K7.ajax)}function x(e){const t=this.params,n=this.metrics;if(!this.ended){this.ended=!0;for(let t=0;t<ue;t++)e.removeEventListener(ce[t],this.listener,!1);t.aborted||(0,se.iW)(t)||(n.duration=(0,S.t)()-this.startTime,this.loadCaptureCalled||4!==e.readyState?null==t.status&&(t.status=0):A(this,e),n.cbTime=this.cbTime,r("xhr",[t,n,this.startTime,this.endTime,"xhr"],this,a.K7.ajax))}}function A(e,r){e.params.status=r.status;var n=function(e,t){var r=e.responseType;return"json"===r&&null!==t?t:"arraybuffer"===r||"blob"===r||"json"===r?G(e.response):"text"===r||""===r||void 0===r?G(e.responseText):void 0}(r,e.lastSize);if(n&&(e.metrics.rxSize=n),e.sameOrigin&&r.getAllResponseHeaders().indexOf(fe)>=0){var i=r.getResponseHeader(fe);i&&((0,l.p)(N.rs,["Ajax/CrossApplicationTracing/Header/Seen"],void 0,a.K7.metrics,t),e.params.cat=i.split(", ").pop())}e.loadCaptureCalled=!0}t.on("new-xhr",i),t.on("open-xhr-start",o),t.on("open-xhr-end",s),t.on("send-xhr-start",c),t.on("xhr-cb-time",u),t.on("xhr-load-added",d),t.on("xhr-load-removed",f),t.on("xhr-resolved",h),t.on("addEventListener-end",p),t.on("removeEventListener-end",m),t.on("fn-end",b),t.on("fetch-before-start",y),t.on("fetch-start",w),t.on("fn-start",v),t.on("fetch-done",R)}(e,this.ee,this.handler,this.dt),this.importAggregator(e)}}function pe(e,t){var r=(0,ne.D)(t),n=e.params||e;n.hostname=r.hostname,n.port=r.port,n.protocol=r.protocol,n.host=r.hostname+":"+r.port,n.pathname=r.pathname,e.parsedOrigin=r,e.sameOrigin=r.sameOrigin}const ge={},me=["pushState","replaceState"];function ve(e){const t=function(e){return(e||F.ee).get("history")}(e);return!g.RI||ge[t.debugId]++||(ge[t.debugId]=1,(0,B.YM)(t).inPlace(window.history,me,"-")),t}var be=i(3738);const{He:ye,bD:we,d3:Re,Kp:xe,TZ:Ae,Lc:Ee,uP:Te,Rz:Se}=be;class Ie extends y{static featureName=Ae;constructor(e,t=!0){super(e,Ae,t);if(!(0,v.V)(this.agentIdentifier))return void this.deregisterDrain();const r=this.ee;let n;ve(r),this.eventsEE=(0,V.u)(r),this.eventsEE.on(Te,(function(e,t){this.bstStart=(0,S.t)()})),this.eventsEE.on(Ee,(function(e,t){(0,l.p)("bst",[e[0],t,this.bstStart,(0,S.t)()],void 0,a.K7.sessionTrace,r)})),r.on(Se+Re,(function(e){this.time=(0,S.t)(),this.startPath=location.pathname+location.hash})),r.on(Se+xe,(function(e){(0,l.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,a.K7.sessionTrace,r)}));try{n=new PerformanceObserver((e=>{const t=e.getEntries();(0,l.p)(ye,[t],void 0,a.K7.sessionTrace,r)})),n.observe({type:we,buffered:!0})}catch(e){}this.importAggregator(e,{resourceObserver:n})}}var Ne=i(2614);class _e extends y{static featureName=t.TZ;#i;#o;constructor(e,r=!0){let n;super(e,t.TZ,r),this.replayRunning=!1,this.#o=e;try{n=JSON.parse(localStorage.getItem("".concat(Ne.H3,"_").concat(Ne.uh)))}catch(e){}(0,m.SR)(e.agentIdentifier)&&this.ee.on(t.G4.RECORD,(()=>this.#a())),this.#s(n)?(this.#i=n?.sessionReplayMode,this.#c()):this.importAggregator(e),this.ee.on("err",(e=>{this.replayRunning&&(this.errorNoticed=!0,(0,l.p)(t.G4.ERROR_DURING_REPLAY,[e],void 0,this.featureName,this.ee))})),this.ee.on(t.G4.REPLAY_RUNNING,(e=>{this.replayRunning=e}))}#s(e){return e&&(e.sessionReplayMode===Ne.g.FULL||e.sessionReplayMode===Ne.g.ERROR)||(0,m.Aw)(this.agentIdentifier)}#u=!1;async#c(e){if(!this.#u){this.#u=!0;try{const{Recorder:t}=await Promise.all([i.e(478),i.e(249)]).then(i.bind(i,8589));this.recorder??=new t({mode:this.#i,agentIdentifier:this.agentIdentifier,trigger:e,ee:this.ee,agentRef:this.#o}),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording}catch(e){}this.importAggregator(this.#o,{recorder:this.recorder,errorNoticed:this.errorNoticed})}}#a(){this.featAggregate?this.featAggregate.mode!==Ne.g.FULL&&this.featAggregate.initializeRecording(Ne.g.FULL,!0):(this.#i=Ne.g.FULL,this.#c(t.Qb.API),this.recorder&&this.recorder.parent.mode!==Ne.g.FULL&&(this.recorder.parent.mode=Ne.g.FULL,this.recorder.stopRecording(),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording))}}var Oe=i(3962);class Pe extends y{static featureName=Oe.TZ;constructor(e,t=!0){if(super(e,Oe.TZ,t),!g.RI||!(0,x.dV)().o.MO)return;const r=ve(this.ee);Oe.tC.forEach((e=>{(0,E.sp)(e,(e=>{a(e)}),!0)}));const n=()=>(0,l.p)("newURL",[(0,S.t)(),""+window.location],void 0,this.featureName,this.ee);r.on("pushState-end",n),r.on("replaceState-end",n);try{this.removeOnAbort=new AbortController}catch(e){}(0,E.sp)("popstate",(e=>(0,l.p)("newURL",[e.timeStamp,""+window.location],void 0,this.featureName,this.ee)),!0,this.removeOnAbort?.signal);let i=!1;const o=new((0,x.dV)().o.MO)(((e,t)=>{i||(i=!0,requestAnimationFrame((()=>{(0,l.p)("newDom",[(0,S.t)()],void 0,this.featureName,this.ee),i=!1})))})),a=(0,b.s)((e=>{(0,l.p)("newUIEvent",[e],void 0,this.featureName,this.ee),o.observe(document.body,{attributes:!0,childList:!0,subtree:!0,characterData:!0})}),100,{leading:!0});this.abortHandler=function(){this.removeOnAbort?.abort(),o.disconnect(),this.abortHandler=void 0},this.importAggregator(e,{domObserver:o})}}var je=i(7378);const Ce={},ke=["appendChild","insertBefore","replaceChild"];function Le(e){const t=function(e){return(e||F.ee).get("jsonp")}(e);if(!g.RI||Ce[t.debugId])return t;Ce[t.debugId]=!0;var r=(0,B.YM)(t),n=/[?&](?:callback|cb)=([^&#]+)/,i=/(.*)\.([^.]+)/,o=/^(\w+)(\.|$)(.*)$/;function a(e,t){if(!e)return t;const r=e.match(o),n=r[1];return a(r[3],t[n])}return r.inPlace(Node.prototype,ke,"dom-"),t.on("dom-start",(function(e){!function(e){if(!e||"string"!=typeof e.nodeName||"script"!==e.nodeName.toLowerCase())return;if("function"!=typeof e.addEventListener)return;var o=(s=e.src,c=s.match(n),c?c[1]:null);var s,c;if(!o)return;var u=function(e){var t=e.match(i);if(t&&t.length>=3)return{key:t[2],parent:a(t[1],window)};return{key:e,parent:window}}(o);if("function"!=typeof u.parent[u.key])return;var d={};function l(){t.emit("jsonp-end",[],d),e.removeEventListener("load",l,(0,E.jT)(!1)),e.removeEventListener("error",f,(0,E.jT)(!1))}function f(){t.emit("jsonp-error",[],d),t.emit("jsonp-end",[],d),e.removeEventListener("load",l,(0,E.jT)(!1)),e.removeEventListener("error",f,(0,E.jT)(!1))}r.inPlace(u.parent,[u.key],"cb-",d),e.addEventListener("load",l,(0,E.jT)(!1)),e.addEventListener("error",f,(0,E.jT)(!1)),t.emit("new-jsonp",[e.src],d)}(e[0])})),t}const De={};function Me(e){const t=function(e){return(e||F.ee).get("promise")}(e);if(De[t.debugId])return t;De[t.debugId]=!0;var r=t.context,n=(0,B.YM)(t),i=g.gm.Promise;return i&&function(){function e(r){var o=t.context(),a=n(r,"executor-",o,null,!1);const s=Reflect.construct(i,[a],e);return t.context(s).getCtx=function(){return o},s}g.gm.Promise=e,Object.defineProperty(e,"name",{value:"Promise"}),e.toString=function(){return i.toString()},Object.setPrototypeOf(e,i),["all","race"].forEach((function(r){const n=i[r];e[r]=function(e){let i=!1;[...e||[]].forEach((e=>{this.resolve(e).then(a("all"===r),a(!1))}));const o=n.apply(this,arguments);return o;function a(e){return function(){t.emit("propagate",[null,!i],o,!1,!1),i=i||!e}}}})),["resolve","reject"].forEach((function(r){const n=i[r];e[r]=function(e){const r=n.apply(this,arguments);return e!==r&&t.emit("propagate",[e,!0],r,!1,!1),r}})),e.prototype=i.prototype;const o=i.prototype.then;i.prototype.then=function(...e){var i=this,a=r(i);a.promise=i,e[0]=n(e[0],"cb-",a,null,!1),e[1]=n(e[1],"cb-",a,null,!1);const s=o.apply(this,e);return a.nextPromise=s,t.emit("propagate",[i,!0],s,!1,!1),s},i.prototype.then[B.Jt]=o,t.on("executor-start",(function(e){e[0]=n(e[0],"resolve-",this,null,!1),e[1]=n(e[1],"resolve-",this,null,!1)})),t.on("executor-err",(function(e,t,r){e[1](r)})),t.on("cb-end",(function(e,r,n){t.emit("propagate",[n,!0],this.nextPromise,!1,!1)})),t.on("propagate",(function(e,r,n){this.getCtx&&!r||(this.getCtx=function(){if(e instanceof Promise)var r=t.context(e);return r&&r.getCtx?r.getCtx():this})}))}(),t}const He={},Ke="setTimeout",Ue="setInterval",Ge="clearTimeout",Ve="-start",Fe=[Ke,"setImmediate",Ue,Ge,"clearImmediate"];function Be(e){const t=function(e){return(e||F.ee).get("timer")}(e);if(He[t.debugId]++)return t;He[t.debugId]=1;var r=(0,B.YM)(t);return r.inPlace(g.gm,Fe.slice(0,2),Ke+"-"),r.inPlace(g.gm,Fe.slice(2,3),Ue+"-"),r.inPlace(g.gm,Fe.slice(3),Ge+"-"),t.on(Ue+Ve,(function(e,t,n){e[0]=r(e[0],"fn-",null,n)})),t.on(Ke+Ve,(function(e,t,n){this.method=n,this.timerDuration=isNaN(e[1])?0:+e[1],e[0]=r(e[0],"fn-",this,n)})),t}const We={};function ze(e){const t=function(e){return(e||F.ee).get("mutation")}(e);if(!g.RI||We[t.debugId])return t;We[t.debugId]=!0;var r=(0,B.YM)(t),n=g.gm.MutationObserver;return n&&(window.MutationObserver=function(e){return this instanceof n?new n(r(e,"fn-")):n.apply(this,arguments)},MutationObserver.prototype=n.prototype),t}const{TZ:qe,d3:Ze,Kp:Ye,$p:Je,wW:Xe,e5:$e,tH:Qe,uP:et,rw:tt,Lc:rt}=je;class nt extends y{static featureName=qe;constructor(e,t=!0){if(super(e,qe,t),!g.RI)return;try{this.removeOnAbort=new AbortController}catch(e){}let r,n=0;const i=this.ee.get("tracer"),o=Le(this.ee),a=Me(this.ee),s=Be(this.ee),c=q(this.ee),u=this.ee.get("events"),d=re(this.ee),f=ve(this.ee),h=ze(this.ee);function p(e,t){f.emit("newURL",[""+window.location,t])}function m(){n++,r=window.location.hash,this[et]=(0,S.t)()}function v(){n--,window.location.hash!==r&&p(0,!0);var e=(0,S.t)();this[$e]=~~this[$e]+e-this[et],this[rt]=e}function b(e,t){e.on(t,(function(){this[t]=(0,S.t)()}))}this.ee.on(et,m),a.on(tt,m),o.on(tt,m),this.ee.on(rt,v),a.on(Xe,v),o.on(Xe,v),this.ee.on("fn-err",((...t)=>{t[2]?.__newrelic?.[e.agentIdentifier]||(0,l.p)("function-err",[...t],void 0,this.featureName,this.ee)})),this.ee.buffer([et,rt,"xhr-resolved"],this.featureName),u.buffer([et],this.featureName),s.buffer(["setTimeout"+Ye,"clearTimeout"+Ze,et],this.featureName),c.buffer([et,"new-xhr","send-xhr"+Ze],this.featureName),d.buffer([Qe+Ze,Qe+"-done",Qe+Je+Ze,Qe+Je+Ye],this.featureName),f.buffer(["newURL"],this.featureName),h.buffer([et],this.featureName),a.buffer(["propagate",tt,Xe,"executor-err","resolve"+Ze],this.featureName),i.buffer([et,"no-"+et],this.featureName),o.buffer(["new-jsonp","cb-start","jsonp-error","jsonp-end"],this.featureName),b(d,Qe+Ze),b(d,Qe+"-done"),b(o,"new-jsonp"),b(o,"jsonp-end"),b(o,"cb-start"),f.on("pushState-end",p),f.on("replaceState-end",p),window.addEventListener("hashchange",p,(0,E.jT)(!0,this.removeOnAbort?.signal)),window.addEventListener("load",p,(0,E.jT)(!0,this.removeOnAbort?.signal)),window.addEventListener("popstate",(function(){p(0,n>1)}),(0,E.jT)(!0,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e)}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var it=i(3333);class ot extends y{static featureName=it.TZ;constructor(e,t=!0){super(e,it.TZ,t);const r=[e.init.page_action.enabled,e.init.performance.capture_marks,e.init.performance.capture_measures,e.init.user_actions.enabled,e.init.performance.resources.enabled];if(g.RI&&(e.init.user_actions.enabled&&(it.Zp.forEach((e=>(0,E.sp)(e,(e=>(0,l.p)("ua",[e],void 0,this.featureName,this.ee)),!0))),it.qN.forEach((e=>{const t=(0,b.s)((e=>{(0,l.p)("ua",[e],void 0,this.featureName,this.ee)}),500,{leading:!0});(0,E.sp)(e,t)}))),e.init.performance.resources.enabled&&g.gm.PerformanceObserver?.supportedEntryTypes.includes("resource"))){new PerformanceObserver((e=>{e.getEntries().forEach((e=>{(0,l.p)("browserPerformance.resource",[e],void 0,this.featureName,this.ee)}))})).observe({type:"resource",buffered:!0})}r.some((e=>e))?this.importAggregator(e):this.deregisterDrain()}}var at=i(993),st=i(3785),ct=i(9414);class ut extends y{static featureName=at.TZ;constructor(e,t=!0){super(e,at.TZ,t);const r=this.ee;(0,ct.J)(r,g.gm.console,"log",{level:"info"}),(0,ct.J)(r,g.gm.console,"error",{level:"error"}),(0,ct.J)(r,g.gm.console,"warn",{level:"warn"}),(0,ct.J)(r,g.gm.console,"info",{level:"info"}),(0,ct.J)(r,g.gm.console,"debug",{level:"debug"}),(0,ct.J)(r,g.gm.console,"trace",{level:"trace"}),this.ee.on("wrap-logger-end",(function([e]){const{level:t,customAttributes:n}=this;(0,st.R)(r,e,n,t)})),this.importAggregator(e)}}new class extends o{constructor(t){super(),g.gm?(this.features={},(0,x.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(t.features||[]),this.desiredFeatures.add(R),this.runSoftNavOverSpa=[...this.desiredFeatures].some((e=>e.featureName===a.K7.softNav)),(0,d.j)(this,t,t.loaderType||"agent"),this.run()):(0,e.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}get api(){return this}run(){try{const t=u(this.agentIdentifier),r=[...this.desiredFeatures];r.sort(((e,t)=>a.P3[e.featureName]-a.P3[t.featureName])),r.forEach((r=>{if(!t[r.featureName]&&r.featureName!==a.K7.pageViewEvent)return;if(this.runSoftNavOverSpa&&r.featureName===a.K7.spa)return;if(!this.runSoftNavOverSpa&&r.featureName===a.K7.softNav)return;const n=function(e){switch(e){case a.K7.ajax:return[a.K7.jserrors];case a.K7.sessionTrace:return[a.K7.ajax,a.K7.pageViewEvent];case a.K7.sessionReplay:return[a.K7.sessionTrace];case a.K7.pageViewTiming:return[a.K7.pageViewEvent];default:return[]}}(r.featureName).filter((e=>!(e in this.features)));n.length>0&&(0,e.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)}))}catch(t){(0,e.R)(22,t);for(const e in this.features)this.features[e].abortHandler?.();const r=(0,x.Zm)();delete r.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return r.ee.get(this.agentIdentifier).abort(),!1}}}({features:[he,R,I,Ie,_e,_,M,ot,ut,Pe,nt],loaderType:"spa"})})()})();</script>
<meta name="title" content="UK’s No. 1 Permanent Makeup Training Academy | K.B Pro"/>
<meta name="description" content="K.B Pro is the leading Permanent Makeup training provider led by Karen Betts. Discover more about our award-winning PMU training courses."/>
<meta name="robots" content="INDEX,FOLLOW"/>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=no"/>
<meta name="format-detection" content="telephone=no"/>
<title>UK’s No. 1 Permanent Makeup Training Academy | K.B Pro</title>
<link  rel="stylesheet" type="text/css"  media="all" href="https://kbpro.com/static/version1742940459/frontend/kbpro/kbpro/en_GB/mage/calendar.css" />
<link  rel="stylesheet" type="text/css"  media="all" href="https://kbpro.com/static/version1742940459/frontend/kbpro/kbpro/en_GB/css/styles-m.css" />
<link  rel="stylesheet" type="text/css"  media="all" href="https://kbpro.com/static/version1742940459/frontend/kbpro/kbpro/en_GB/css/styles.css" />
<link  rel="stylesheet" type="text/css"  media="all" href="https://kbpro.com/static/version1742940459/frontend/kbpro/kbpro/en_GB/css/checkout.css" />
<link  rel="stylesheet" type="text/css"  media="all" href="https://kbpro.com/static/version1742940459/frontend/kbpro/kbpro/en_GB/css/cart.css" />
<link  rel="stylesheet" type="text/css"  media="all" href="https://kbpro.com/static/version1742940459/frontend/kbpro/kbpro/en_GB/css/minicart.css" />
<link  rel="stylesheet" type="text/css"  media="all" href="https://kbpro.com/static/version1742940459/frontend/kbpro/kbpro/en_GB/Amasty_Base/vendor/slick/amslick.min.css" />
<link  rel="stylesheet" type="text/css"  media="all" href="https://kbpro.com/static/version1742940459/frontend/kbpro/kbpro/en_GB/Amasty_Label/vendor/tooltipster/css/tooltipster.min.css" />
<link  rel="stylesheet" type="text/css"  media="all" href="https://kbpro.com/static/version1742940459/frontend/kbpro/kbpro/en_GB/Mageplaza_Core/css/owl.carousel.css" />
<link  rel="stylesheet" type="text/css"  media="all" href="https://kbpro.com/static/version1742940459/frontend/kbpro/kbpro/en_GB/Mageplaza_Core/css/owl.theme.css" />
<link  rel="stylesheet" type="text/css"  media="all" href="https://kbpro.com/static/version1742940459/frontend/kbpro/kbpro/en_GB/Mageplaza_Core/css/magnific-popup.css" />
<link  rel="stylesheet" type="text/css"  media="all" href="https://kbpro.com/static/version1742940459/frontend/kbpro/kbpro/en_GB/Trustpilot_Reviews/css/trustpilot.min.css" />
<link  rel="stylesheet" type="text/css"  media="all" href="https://kbpro.com/static/version1742940459/frontend/kbpro/kbpro/en_GB/Anowave_TaxSwitch/css/tax.css" />
<link  rel="stylesheet" type="text/css"  media="all" href="https://kbpro.com/static/version1742940459/frontend/kbpro/kbpro/en_GB/Amasty_Blog/css/source/mkcss/amblog.css" />
<link  rel="stylesheet" type="text/css"  media="all" href="https://kbpro.com/static/version1742940459/frontend/kbpro/kbpro/en_GB/Anowave_Ec/css/ec.css" />
<link  rel="stylesheet" type="text/css"  media="screen and (min-width: 768px)" href="https://kbpro.com/static/version1742940459/frontend/kbpro/kbpro/en_GB/css/styles-l.css" />
<link  rel="stylesheet" type="text/css"  media="print" href="https://kbpro.com/static/version1742940459/frontend/kbpro/kbpro/en_GB/css/print.css" />
<script  type="text/javascript"  src="https://kbpro.com/static/version1742940459/frontend/kbpro/kbpro/en_GB/requirejs/require.js"></script>
<script  type="text/javascript"  src="https://kbpro.com/static/version1742940459/frontend/kbpro/kbpro/en_GB/mage/requirejs/mixins.js"></script>
<script  type="text/javascript"  src="https://kbpro.com/static/version1742940459/frontend/kbpro/kbpro/en_GB/requirejs-config.js"></script>
<script  type="text/javascript"  src="https://kbpro.com/static/version1742940459/frontend/kbpro/kbpro/en_GB/Anowave_Ec/js/ec.js"></script>
<script  type="text/javascript"  src="https://kbpro.com/static/version1742940459/frontend/kbpro/kbpro/en_GB/Anowave_Ec4/js/ec4.js"></script>
<script  type="text/javascript"  src="https://kbpro.com/static/version1742940459/frontend/kbpro/kbpro/en_GB/js/slick.js"></script>
<script  type="text/javascript"  src="https://kbpro.com/static/version1742940459/frontend/kbpro/kbpro/en_GB/js/custom.js"></script>
<!--[if IE 11]>
<script  type="text/javascript"  src="https://kbpro.com/static/version1742940459/frontend/kbpro/kbpro/en_GB/Klevu_Search/js/klevu/ieUrlPolyfill.js"></script>
<![endif]-->
<link  rel="canonical" href="https://kbpro.com" />
<link  rel="icon" type="image/x-icon" href="https://kbpro.com/media/favicon/stores/5/favicon_kb.ico" />
<link  rel="shortcut icon" type="image/x-icon" href="https://kbpro.com/media/favicon/stores/5/favicon_kb.ico" />
<!-- Start of LiveChat (www.livechat.com) code -->
<script>
    window.__lc = window.__lc || {};
    window.__lc.license = 8744166;
    ;(function(n,t,c){function i(n){return e._h?e._h.apply(null,n):e._q.push(n)}var e={_q:[],_h:null,_v:"2.0",on:function(){i(["on",c.call(arguments)])},once:function(){i(["once",c.call(arguments)])},off:function(){i(["off",c.call(arguments)])},get:function(){if(!e._h)throw new Error("[LiveChatWidget] You can't use getters before load.");return i(["get",c.call(arguments)])},call:function(){i(["call",c.call(arguments)])},init:function(){var n=t.createElement("script");n.async=!0,n.type="text/javascript",n.src="https://cdn.livechatinc.com/tracking.js",t.head.appendChild(n)}};!n.__lc.asyncInit&&e.init(),n.LiveChatWidget=n.LiveChatWidget||e}(window,document,[].slice))
</script>
<noscript><a href="https://www.livechat.com/chat-with/8744166/" rel="nofollow">Chat with us</a>, powered by <a href="https://www.livechat.com/?welcome" rel="noopener nofollow" target="_blank">LiveChat</a></noscript>
<!-- End of LiveChat code -->


<script src="https://www.google.com/recaptcha/api.js" async defer></script>        
<link rel="preconnect" href="https://js.klevu.com"/>
    <script type="text/x-magento-init">
        {
            "*": {
                "Magento_PageCache/js/form-key-provider": {
                    "isPaginationCacheEnabled":
                        0                }
            }
        }
    </script>
<style>
	.ec-gtm-cookie-directive > div { background: #ffffff; color: #000000  }
	.ec-gtm-cookie-directive > div > div > div a.action.accept { color: #8bc53f }
	.ec-gtm-cookie-directive > div > div > div .ec-gtm-cookie-directive-note-toggle { color: #8bc53f }
    .ec-gtm-cookie-directive-segments > div input[type="checkbox"] + label:before { border:1px solid #000000 }  
</style>
<script data-ommit="true">

	window.dataLayer = window.dataLayer || [];

		
	window.AEC = window.AEC || { version: "103.1.7"	};

		
	AEC.Const = 
	{
		TIMING_CATEGORY_ADD_TO_CART:		'Add To Cart Time',
		TIMING_CATEGORY_REMOVE_FROM_CART:	'Remove From Cart Time',
		TIMING_CATEGORY_PRODUCT_CLICK:		'Product Detail Click Time',
		TIMING_CATEGORY_CHECKOUT:			'Checkout Time',
		TIMING_CATEGORY_CHECKOUT_STEP:		'Checkout Step Time',
		TIMING_CATEGORY_PRODUCT_WISHLIST:	'Add to Wishlist Time',
		TIMING_CATEGORY_PRODUCT_COMPARE:	'Add to Compare Time'
	};

	AEC.Const.URL 					= 'https://kbpro.com/';
	AEC.Const.VARIANT_DELIMITER 	= '-';
	AEC.Const.VARIANT_DELIMITER_ATT = ':';

		
	AEC.Const.CHECKOUT_STEP_SHIPPING 	= 1;
	AEC.Const.CHECKOUT_STEP_PAYMENT  	= 2;
	AEC.Const.CHECKOUT_STEP_ORDER  		= 3;

		
	AEC.Const.DIMENSION_SEARCH = 18;

	
	AEC.Const.COOKIE_DIRECTIVE 								= false;
	AEC.Const.COOKIE_DIRECTIVE_SEGMENT_MODE 				= false;
	AEC.Const.COOKIE_DIRECTIVE_SEGMENT_MODE_EVENTS			= ["cookieConsentGranted"];	
	AEC.Const.COOKIE_DIRECTIVE_CONSENT_GRANTED_EVENT 		= "cookieConsentGranted";
	AEC.Const.COOKIE_DIRECTIVE_CONSENT_DECLINE_EVENT 		= "cookieConsentDeclined";

		
	AEC.Const.COOKIE_DIRECTIVE_CONSENT_GRANTED = AEC.CookieConsent.getConsent("cookieConsentGranted");

		
	AEC.Const.CATALOG_CATEGORY_ADD_TO_CART_REDIRECT_EVENT = "catalogCategoryAddToCartRedirect";

		
	AEC.Message = 
	{
		confirm: 			 true,
		confirmRemoveTitle:  "Are you sure?",
		confirmRemove: 		 "Are you sure you would like to remove this item from the shopping cart?"
	};
			
	AEC.storeName 			= "kbpro";
	AEC.currencyCode	 	= "GBP";
	AEC.useDefaultValues 	= false;
	AEC.facebook 			= true;
	AEC.facebookInitParams 	= [];

		
	AEC.SUPER = [];

		
	AEC.CONFIGURABLE_SIMPLES = [];

	
	AEC.BUNDLE = {"bundles":[],"options":[]};

	
	AEC.localStorage = true;

		
	AEC.summary = false;

	
	AEC.reset = false;
	
</script>
        	<!-- Meta Pixel Code -->
<script>
!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}(window, document,'script',
'https://connect.facebook.net/en_US/fbevents.js');
fbq('init', '328118897915949');
fbq('track', 'PageView');
</script>
<noscript><img height="1" width="1" style="display:none"
src="https://www.facebook.com/tr?id=2012874682106019&ev=PageView&noscript=1"
/></noscript>
<!-- End Meta Pixel Code -->        
    <script data-ommit="true">

                        
            (() => 
            {
                let time = 0, loop = setInterval(() => 
            	{
                	time++;
                	
            		if ('undefined' !== typeof fbq)
            		{
            			AEC.EventDispatcher.trigger('ec.facebook.loaded', {});
    
            			clearInterval(loop);
            		}

            		if (time > 100)
            		{
                		console.log('Failed to detect ec.facebook.loaded event.');

                		clearInterval(loop);
            		}

            	}, 100);
            })();
            
    </script>
<script data-ommit="true">

    (summary => 
    {
    	if (summary)
    	{
        	let getSummary = (event) => 
        	{
            	AEC.Request.post("https:\/\/kbpro.com\/datalayer\/index\/cart\/",{ event:event }, (response) => 
            	{
                	dataLayer.push(response);
               	});
            };

            ['ec.cookie.remove.item.data','ec.cookie.update.item.data','ec.cookie.add.data'].forEach(event => 
            {
            	AEC.EventDispatcher.on(event, (event => 
            	{
                	return () => 
                	{
                    	setTimeout(() => { getSummary(event); }, 2000);
                    };
                })(event));
            });
    	}
    })(AEC.summary);
    
</script>
<script data-ommit="true">

    if (AEC.GA4)
    {
    	AEC.GA4.enabled = true;

    	    	
    	AEC.GA4.conversion_event = "purchase";

    	    	
    	AEC.GA4.currency = "GBP";

    	    	
    	AEC.GA4.quote = [];
    }
    
</script><script data-ommit="true">

		
	window.dataLayer = window.dataLayer || [];

		
	var dataLayerTransport = (function()
	{
		var data = [];
		
		return {
			data:[],
			push: function(data)
			{
				this.data.push(data);
				
				return this;
			},
			serialize: function()
			{
				return this.data;
			}
		}	
	})();
	
</script><script data-ommit="true">

	var EC = [];

	/* Dynamic remarketing */
	window.google_tag_params = window.google_tag_params || {};

	/* Default pagetype */
	window.google_tag_params.ecomm_pagetype = 'home';

	/* Grouped products collection */
	window.G = [];

	/**
	 * Global revenue 
	 */
	window.revenue = 0;

	/**
	 * DoubleClick
	 */
	window.DoubleClick = 
	{
		DoubleClickRevenue:	 	0,
		DoubleClickTransaction: 0,
		DoubleClickQuantity: 	0
	};
	
	
	AEC.Cookie.visitor({"visitorLoginState":"Logged out","visitorLifetimeValue":0,"visitorExistingCustomer":"No","visitorType":"NOT LOGGED IN","currentStore":"kbpro"}).push(dataLayer, false);

		
	dataLayer.push({ pageType: "home"});
	
</script>

<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-M8SQWMZ');</script>
<!-- End Google Tag Manager -->
<script data-ommit="true">

    	
</script>
<script data-ommit="true">AEC.Bind.apply({"performance":false})</script>

<meta property="og:type" content="website"/>
<meta property="og:title" content="UK&#x2019;s&#x20;No.&#x20;1&#x20;Permanent&#x20;Makeup&#x20;Training&#x20;Academy&#x20;&#x7C;&#x20;K.B&#x20;Pro"/>
<meta property="og:description" content="K.B&#x20;Pro&#x20;is&#x20;the&#x20;leading&#x20;Permanent&#x20;Makeup&#x20;training&#x20;provider&#x20;led&#x20;by&#x20;Karen&#x20;Betts.&#x20;Discover&#x20;more&#x20;about&#x20;our&#x20;award-winning&#x20;PMU&#x20;training&#x20;courses."/>
<meta property="og:url" content="https://kbpro.com"/>
<meta property="og:site_name" content="KB Pro"/>
<script type="application/ld+json">{"@context":"http:\/\/schema.org","@type":"WebSite","url":"https:\/\/kbpro.com\/","name":"KB Pro"}</script><script type="application/ld+json">{"@context":"http:\/\/schema.org\/","@type":"WebPage","speakable":{"@type":"SpeakableSpecification","cssSelector":[".cms-content"],"xpath":["\/html\/head\/title"]}}</script><script type="text/javascript" id="klevu_initsessiondata">
    var nowUnixtime = parseInt(Date.now() / 1000);

    function klevufejs_getCookie(name) {
        if (typeof (name) === "undefined") {
            name = "klv_mage";
        }
        var c = "",
            ca = document.cookie.split(';');

        for (var i = 0; i < ca.length; i++) {
            c = ca[i];
            if (typeof c !== "string") {
                continue;
            }
            var cookiePair = c.split("=");

            if (name === cookiePair[0].trim()) {
                try {
                    return JSON.parse(decodeURIComponent(cookiePair[1]));
                } catch (err) {
                    // this is fine, data will be regenerated
                }
            }
        }
        return {
            expire_sections: {}
        };
    }

    document.addEventListener('klevu.customerData.loaded', function (e) {
        var klevufejs_cookie = klevufejs_getCookie();
        klevufejs_cookie.expire_sections.customerData = nowUnixtime + 600;

        document.cookie = "klv_mage=" + JSON.stringify(klevufejs_cookie) + ";" + (new Date((nowUnixtime + 3600) * 1000).toUTCString()) + ";path=/;SameSite=Strict";
    });

    var klevufejs_cookie = klevufejs_getCookie();
    var klevuData = {
        ...{
            customerData: {
                revalidate_after: -1
            }
        },
        ...JSON.parse(window.localStorage.getItem('klv_mage') || '{}')
    };

    const klevuCustomerDataLoadedEvent = document.createEvent('CustomEvent');
    klevuCustomerDataLoadedEvent.initEvent('klevu.customerData.loaded', false, true);
    const klevuCustomerDataLoadErrorEvent = document.createEvent('CustomEvent');
    klevuCustomerDataLoadErrorEvent.initEvent('klevu.customerData.loadError', false, true);

    if (typeof klevufejs_cookie.expire_sections !== "object"
        || (klevufejs_cookie.expire_sections.customerData || -1) < nowUnixtime
        || klevuData.customerData.revalidate_after < nowUnixtime
    ) {
        var xhttp = new XMLHttpRequest();
        xhttp.onerror = function (request) {
            document.dispatchEvent(klevuCustomerDataLoadErrorEvent);
        };
        xhttp.ontimeout = function (request) {
            this.onerror(request);
        };
        xhttp.onload = function (request) {
            if (this.status >= 400 || this.timeout) {
                this.onerror(request);
                return;
            }

            var klevuData = JSON.parse(window.localStorage.getItem('klv_mage') || '{}');
            klevuData.customerData = JSON.parse(this.response);
            window.localStorage.setItem('klv_mage', JSON.stringify(klevuData));

            document.dispatchEvent(klevuCustomerDataLoadedEvent);
        };
        xhttp.open('GET', 'https://kbpro.com/rest/V1/klevu/customerData', false);
        xhttp.send();
    } else {
        document.dispatchEvent(klevuCustomerDataLoadedEvent);
    }
</script>
    </head>
    <body data-container="body"
          data-mage-init='{"loaderAjax": {}, "loader": { "icon": "https://kbpro.com/static/version1742940459/frontend/kbpro/kbpro/en_GB/images/loader-2.gif"}}'
        class="pl-thm-kbpro pl-thm-kbpro-kbpro cms-home cms-index-index page-layout-kbpro_wordpress" id="html-body">
        

<link rel='stylesheet'  href='https://kbpro.com/static/version1742940459/frontend/kbpro/kbpro/en_GB/css/wordpress/wordpress.css' media='all' />
<link rel='stylesheet' id='main-css' href='/wp-content/themes/kbpro/css/main.css' media='all' />

<script>

require([
        'jquery',
		'parsley',
    ], function ($) {
            $("#enquire_kb").on( "submit", function( event ) {
              event.preventDefault();
              $('#enquire_kb').parsley().validate();
              if ($('#enquire_kb').parsley().isValid()) {
                  var vg = grecaptcha.getResponse();
                  //console.log('reCaptcha = ' + vg);
                  if(vg.length == 0) {
                          document.getElementById('captcha').style.color = 'red';
                           document.getElementById('captcha').innerHTML="You must complete the reCAPTCHA!";
                          console.log('Not valid.');
                           return false;
                       } else {
                          document.getElementById('captcha').style.color = 'green';
                          document.getElementById('captcha').innerHTML="reCAPTCHA completed!";
                          jQuery("#enquire_kb").addClass("n_form--complete");
                          jQuery("#submitForm").html("Processing");
                          console.log('Valid.');
                          document.getElementById("enquire_kb").submit();
                          return true;
                       }
              } else {
                  console.log('Not valid.');
              }

          });
    });

</script>

<script type="text/javascript">
  require(['jquery', 'jquery/ui'], function($){
			$(".menu-overlay").hover(function(){
					jQuery('.menu-overlay').removeClass("show");
				});
  });
</script>

<script>
  require(['jquery', 'jquery/ui'], function($){

      jQuery(document).ready(function(){

       /* Adapt nav height to current window height */
       var height = $(window).height();
       var width = $(window).width();
       var minusExtras = 107;
       var height = height - minusExtras;


        $('input[type="checkbox"]').click(function() {

              if($(this).prop("checked") == true) {
                // alert("Checkbox is checked.");
                 jQuery('.menu-overlay').addClass("show");
              }

              else if($(this).prop("checked") == false) {
                // alert("Checkbox is unchecked.");
                jQuery('.menu-overlay').removeClass("show");
              }

        });

        // Format output
        jQuery.fn.digits = function(){
          return this.each(function(){
              jQuery(this).text( jQuery(this).text().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,") );
          })
        }

        // Earning Calculator Variables

        // Toggle Select - TPW (Treatments Per Week)
        // Selected class uses to toggle price for calculations
        jQuery(".kbpro-earning-calculator__calculator__treatment_number__select__tpw").click(function() {
          jQuery(".kbpro-earning-calculator__calculator__treatment_number__select__tpw").removeClass("kbpro-earning-calculator__calculator__treatment_number__select--selected");
          jQuery(this).addClass("kbpro-earning-calculator__calculator__treatment_number__select--selected");
        });

        // Toggle Select - TPT (Takings Per Treatment)
        // Selected class uses to toggle price for calculations
        jQuery(".kbpro-earning-calculator__calculator__treatment_number__select__tpt").click(function() {
          jQuery(".kbpro-earning-calculator__calculator__treatment_number__select__tpt").removeClass("kbpro-earning-calculator__calculator__treatment_number__select--selected");
          jQuery(this).addClass("kbpro-earning-calculator__calculator__treatment_number__select--selected");
        });

        // Do calculations
        jQuery(".kbpro-earning-calculator__calculator__treatment_number__select").click(function() {
          // Set Variable Value
          var jQueryWeeklyTreatmentNumber     = jQuery('.kbpro-earning-calculator__calculator__treatment_number__select__tpw.kbpro-earning-calculator__calculator__treatment_number__select--selected').html();
          var jQueryTreatmentValue            = jQuery('.kbpro-earning-calculator__calculator__treatment_number__select__tpt.kbpro-earning-calculator__calculator__treatment_number__select--selected').html();
          console.log('Treatment Number = ' + jQueryWeeklyTreatmentNumber);
          console.log('Treatment NumbeValuer = ' + jQueryTreatmentValue);
          // Do calculations
          var jQueryTreatmentValueWeekly      = (jQueryTreatmentValue * jQueryWeeklyTreatmentNumber);   // Treatment takings selected * weekly treaments selected
          var jQueryTreatmentValueAnnual      = (jQueryTreatmentValueWeekly * 48);                      // Treatment takings selected * weekly treaments selected * 48 weeks per year
          // Set values
          jQuery(".kbpro-earning-calculator__calculator__treatment_calc__treatment__value--treatment").html(jQueryTreatmentValue).digits();
          jQuery(".kbpro-earning-calculator__calculator__treatment_calc__treatment__value--weekly").html(jQueryTreatmentValueWeekly).digits();
          jQuery(".kbpro-earning-calculator__calculator__treatment_calc__treatment__value--annual").html(jQueryTreatmentValueAnnual).digits();
          });
        });

        // Toggle Training Dates Date Drop Down
        jQuery(".kbpro-training-dates__select--dates").click(function() {
          jQuery(this).toggleClass("change");
          jQuery(this).find("ul").toggleClass("change");
          if (!jQuery('#prevMonth').length){
              jQuery(this).find("ul").toggleClass("change--no-prev");
          }
        });

        // Toggle Modal
        jQuery(".popup__toggle").click(function(){
          jQuery( this ).toggleClass('popup__toggle--toggle');
          jQuery( 'html' ).toggleClass('lock');
          jQuery( 'body' ).toggleClass('lock');
        });

        // Course slider add Class to slide
        jQuery(".training-course-slider--next").parent().next().find('.slick-slide:first-of-type').addClass('first-course');

        // Form Checkboxes - toggle hidden No if not yes
        // Marketing - Email
        jQuery('#inf_option_MarketingEmailYes').change(function() {
          if (this.checked) {
            jQuery('#inf_option_MarketingEmailNo').prop('disabled', true);
          } else {
            jQuery('#inf_option_MarketingEmailNo').prop('disabled', false);
          }
        });

        // Marketing - Tel
        jQuery('#inf_option_MarketingPhoneYes').change(function() {
          if (this.checked) {
            jQuery('#inf_option_MarketingPhoneNo').prop('disabled', true);
          } else {
            jQuery('#inf_option_MarketingPhoneNo').prop('disabled', false);
          }
        });

        // Marketing - SMS
        jQuery('#inf_option_MarketingSmsYes').change(function() {
          if (this.checked) {
            jQuery('#inf_option_MarketingSmsNo').prop('disabled', true);
          } else {
            jQuery('#inf_option_MarketingSmsNo').prop('disabled', false);
          }
        });

        // Marketing - Post
        jQuery('#inf_option_MarketingPostYes').change(function() {
          if (this.checked) {
            jQuery('#inf_option_MarketingPostNo').prop('disabled', true);
          } else {
            jQuery('#inf_option_MarketingPostNo').prop('disabled', false);
          }
        });

        // Marketing - Group
        jQuery('#inf_option_MarketingGroupYes').change(function() {
          if (this.checked) {
            jQuery('#inf_option_MarketingGroupNo').prop('disabled', true);
          } else {
            jQuery('#inf_option_MarketingGroupNo').prop('disabled', false);
          }
        });

      });

</script>


<script>

window.onload = function(cookie) {
    // Check Cookies
    checkPPCCookie();
    // Hide cookie car on click

    // Check/Set PPC cookie if gclid exists in the url
    if(window.location.href.indexOf("gclid") > -1) {
        setPPCCookie();
    } else {
    }
}

// Global cookie functions
function getCookie(cname) {
    var name = cname + "=";
    var decodedCookie = decodeURIComponent(document.cookie);
    var ca = decodedCookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') {
            c = c.substring(1);
        }
        if (c.indexOf(name) == 0) {
            return c.substring(name.length, c.length);
        }
    }
    return "";
}

// Track PPC
function setPPCCookie() {
    var d = new Date();
    d.setTime(d.getTime() + (365 * 24 * 60 * 60 * 90));
    var ppcexpires = "; expires="+d.toGMTString();
    document.cookie = "kbpro_ppcvisitor" + "=" + "PPC Visitor" + ppcexpires + "; path=/";
}

function checkPPCCookie() {
    var ppcvisitor = getCookie("kbpro_ppcvisitor");
    if (ppcvisitor != "") {
      jQuery('<input type="hidden" name="mls" value="216" />').insertAfter('.kbpro-form #formid');
    }
}

</script>

<script type="text/javascript">
  function ViewModal(clickedSpan) {
    var modalClicked = clickedSpan.nextSibling.nextSibling;
    console.log(modalClicked);

    const modal = document.createElement('div');
    modal.classList.add('modal');

    const childNew = document.createElement('div');
    childNew.classList.add('child');
    childNew.innerHTML = modalClicked.innerHTML;

    modal.appendChild(childNew);
    document.body.appendChild(modal);

    //remove modal if background|cross is clicked
    modal.addEventListener('click', event => {
      if (event.target.className === 'modal' || event.target.className === 'popup__content-close-popup') {
        removeModal();
      }
    });
  }

  //find and remove modal
  function removeModal() {
    const modal = document.querySelector('.modal');
    if (modal) {
      modal.remove();
    }
  }
</script>

<script type="text/x-magento-init">
    {
        "*": {
            "Magento_PageBuilder/js/widget-initializer": {
                "config": {"[data-content-type=\"slider\"][data-appearance=\"default\"]":{"Magento_PageBuilder\/js\/content-type\/slider\/appearance\/default\/widget":false},"[data-content-type=\"map\"]":{"Magento_PageBuilder\/js\/content-type\/map\/appearance\/default\/widget":false},"[data-content-type=\"row\"]":{"Magento_PageBuilder\/js\/content-type\/row\/appearance\/default\/widget":false},"[data-content-type=\"tabs\"]":{"Magento_PageBuilder\/js\/content-type\/tabs\/appearance\/default\/widget":false},"[data-content-type=\"slide\"]":{"Magento_PageBuilder\/js\/content-type\/slide\/appearance\/default\/widget":{"buttonSelector":".pagebuilder-slide-button","showOverlay":"hover","dataRole":"slide"}},"[data-content-type=\"banner\"]":{"Magento_PageBuilder\/js\/content-type\/banner\/appearance\/default\/widget":{"buttonSelector":".pagebuilder-banner-button","showOverlay":"hover","dataRole":"banner"}},"[data-content-type=\"buttons\"]":{"Magento_PageBuilder\/js\/content-type\/buttons\/appearance\/inline\/widget":false},"[data-content-type=\"products\"][data-appearance=\"carousel\"]":{"Magento_PageBuilder\/js\/content-type\/products\/appearance\/carousel\/widget":false}},
                "breakpoints": {"desktop":{"label":"Desktop","stage":true,"default":true,"class":"desktop-switcher","icon":"Magento_PageBuilder::css\/images\/switcher\/switcher-desktop.svg","conditions":{"min-width":"1024px"},"options":{"products":{"default":{"slidesToShow":"5"}}}},"tablet":{"conditions":{"max-width":"1024px","min-width":"768px"},"options":{"products":{"default":{"slidesToShow":"4"},"continuous":{"slidesToShow":"3"}}}},"mobile":{"label":"Mobile","stage":true,"class":"mobile-switcher","icon":"Magento_PageBuilder::css\/images\/switcher\/switcher-mobile.svg","media":"only screen and (max-width: 768px)","conditions":{"max-width":"768px","min-width":"640px"},"options":{"products":{"default":{"slidesToShow":"3"}}}},"mobile-small":{"conditions":{"max-width":"640px"},"options":{"products":{"default":{"slidesToShow":"2"},"continuous":{"slidesToShow":"1"}}}}}            }
        }
    }
</script>

<div
            class="ambanners ambanner-10"
        data-position="10"
        data-role="amasty-banner-container"
></div>

<div class="cookie-status-message" id="cookie-status">
    The store will not work correctly in the case when cookies are disabled.</div>
<script type="text&#x2F;javascript">document.querySelector("#cookie-status").style.display = "none";</script>
<script type="text/x-magento-init">
    {
        "*": {
            "cookieStatus": {}
        }
    }
</script>

<script type="text/x-magento-init">
    {
        "*": {
            "mage/cookies": {
                "expires": null,
                "path": "\u002F",
                "domain": ".kbpro.com",
                "secure": true,
                "lifetime": "3600"
            }
        }
    }
</script>
    <noscript>
        <div class="message global noscript">
            <div class="content">
                <p>
                    <strong>JavaScript seems to be disabled in your browser.</strong>
                    <span>
                        For the best experience on our site, be sure to turn on Javascript in your browser.                    </span>
                </p>
            </div>
        </div>
    </noscript>

<script>
    window.cookiesConfig = window.cookiesConfig || {};
    window.cookiesConfig.secure = true;
</script><script>    require.config({
        map: {
            '*': {
                wysiwygAdapter: 'mage/adminhtml/wysiwyg/tiny_mce/tinymceAdapter'
            }
        }
    });</script><script>    require.config({
        paths: {
            googleMaps: 'https\u003A\u002F\u002Fmaps.googleapis.com\u002Fmaps\u002Fapi\u002Fjs\u003Fv\u003D3\u0026key\u003D'
        },
        config: {
            'Magento_PageBuilder/js/utils/map': {
                style: '',
            },
            'Magento_PageBuilder/js/content-type/map/preview': {
                apiKey: '',
                apiKeyErrorMessage: 'You\u0020must\u0020provide\u0020a\u0020valid\u0020\u003Ca\u0020href\u003D\u0027https\u003A\u002F\u002Fkbpro.com\u002Fadminhtml\u002Fsystem_config\u002Fedit\u002Fsection\u002Fcms\u002F\u0023cms_pagebuilder\u0027\u0020target\u003D\u0027_blank\u0027\u003EGoogle\u0020Maps\u0020API\u0020key\u003C\u002Fa\u003E\u0020to\u0020use\u0020a\u0020map.'
            },
            'Magento_PageBuilder/js/form/element/map': {
                apiKey: '',
                apiKeyErrorMessage: 'You\u0020must\u0020provide\u0020a\u0020valid\u0020\u003Ca\u0020href\u003D\u0027https\u003A\u002F\u002Fkbpro.com\u002Fadminhtml\u002Fsystem_config\u002Fedit\u002Fsection\u002Fcms\u002F\u0023cms_pagebuilder\u0027\u0020target\u003D\u0027_blank\u0027\u003EGoogle\u0020Maps\u0020API\u0020key\u003C\u002Fa\u003E\u0020to\u0020use\u0020a\u0020map.'
            },
        }
    });</script><script>
    require.config({
        shim: {
            'Magento_PageBuilder/js/utils/map': {
                deps: ['googleMaps']
            }
        }
    });</script><!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=	GTM-M8SQWMZ"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) --><div class="page-wrapper"><header class="page-header"><div class="header content"><div class="block block-search">
    <div class="block block-title"><strong>Search</strong></div>
    <div class="block block-content">
        <form class="form minisearch" id="search_mini_form"
              action="https://kbpro.com/catalogsearch/result/" method="get">
            <div class="field search">
                <label class="label" for="search" data-role="minisearch-label">
                    <span>Search</span>
                </label>
                <div class="control">
                    <div class="search-img" style="display:none;"><img src="https://kbpro.com/static/version1742940459/frontend/kbpro/kbpro/en_GB/images/icons/nav/nav_icon_search.png"></div>
                    <input id="search"
                           data-mage-init='{"quickSearch":{
                                "formSelector":"#search_mini_form",
                                "url":"https://kbpro.com/search/ajax/suggest/",
                                "destinationSelector":"#search_autocomplete",
                                "minSearchLength":"3"}
                           }'
                           type="text"
                           name="q"
                           value=""
                           placeholder="Search&#x20;K.B&#x20;Pro&#x20;for..."
                           class="input-text"
                           maxlength="128"
                           role="combobox"
                           aria-haspopup="false"
                           aria-autocomplete="both"
                           autocomplete="off"
                           aria-expanded="false"/>
                    <div id="search_autocomplete" class="search-autocomplete"></div>
                    <div class="nested">
    <a class="action advanced" href="https://kbpro.com/catalogsearch/advanced/" data-action="advanced-search">
        Advanced Search    </a>
</div>
                                <div class="close"><img src="https://kbpro.com/static/version1742940459/frontend/kbpro/kbpro/en_GB/images/icons/nav/icon-close-grey.svg"></div>
                </div>
            </div>
            <div class="actions">
                <button type="submit"
                    title="Search"
                    class="action search"
                    aria-label="Search"
                >
                    <span>Search</span>
                </button>
            </div>

        </form>
    </div>
</div>
<script>
    require ([
        'jquery'
    ],

    function($) {
       $(window).on("load", function () {
            require([
                'headerSearch'
            ]);
        });
    });
</script>
</div>

<div class="main-nav-head">
	<div class="banner_test">
		<p style="color: black;"><a href="https://kbpro.com/insider/important-anouncement/">Important Announcement</a></p>		</div>

	<ul>
		<div class="menu-search">
		<li class="njs-toggle-menu">
			  <input type="checkbox" id="njs-toggle-menu--toggle" class="njs-toggle-menu--toggle">
			  <label for="njs-toggle-menu--toggle" class="promo-active">
				<span class="toggle-menu__toggle-menu-icon">
				  <span class="toggle-menu-icon__toggle-menu-icon-inner" aria-label="More menu options - sign in, view basket, call us, and email us"></span>
				</span>
				<!-- <span class="toggle-menu__toggle-menu-text">Menu</span> -->
			  </label>
			  <div id="kbpronav" class="main-nav main-nav--promo-active">
					    
      <nav class="main-nav__content">
      <span class="kbpronav back-button"><img src="https://kbpro.com/static/version1742940459/frontend/kbpro/kbpro/en_GB/images/icons/nav/chevron.svg" alt="Go Back">Back</span>
      <li class="njs-toggle-menu">
          <input type="checkbox" id="njs-toggle-menu--toggle" class="njs-toggle-menu--toggle">
          <label for="njs-toggle-menu--toggle" class="promo-active">
          <span class="toggle-menu__toggle-menu-icon">
            <span class="toggle-menu-icon__toggle-menu-icon-inner" aria-label="More menu options - sign in, view basket, call us, and email us"></span>
          </span>
          <!-- <span class="toggle-menu__toggle-menu-text">Menu</span> -->
          </label>
      </li>

	    <div class="main-nav__content__links-area main-nav__content__links-area--tog">
            <div class="kbpro-nav kbpro-nav--two">
			 <ul class="main-nav__content__list">
													
							<li class="main-nav__content__item  main-nav__content__item--parent training-title">
								<a
  id="parent"
href="" data-menu="menu-163542" class="main-nav__content__link">
  <div class="menu-item__icon">
    <img src="https://kbpro.com/media/pinpoint/snowdog/0/c/0c3e3bd58ec81ccd684e3775f5ddd3a1.png" />
  </div>
<span class="title">
  K.B Pro Training      <span title="view more" class="main-nav__content__icon">

    </span>
  </span>
</a>
        				        <ul  class="main-nav__content__inner-list main-nav__content__inner-list--level1" data-menu="menu-163542">
                    
            <li  class="main-nav__content__inner-item main-nav__content__inner-item--all main-nav__content__inner-item--level1">
                <a
href="" class="main-nav__content__inner-link inner-list-header">
  <div class="menu-item__icon">
    <img src="https://kbpro.com/media/pinpoint/snowdog/0/c/0c3e3bd58ec81ccd684e3775f5ddd3a1.png" />
  </div>
<span class="title">
  K.B Pro Training  </span>
</a>
            </li>
        
                    
            <li  class="main-nav__content__inner-item main-nav__content__inner-item--level1 view-all">
                <a
href="/training/" data-menu="menu-163543" class="main-nav__content__inner-link">
<span class="title">
  View All   </span>
</a>
                            </li>
                    
            <li  class="main-nav__content__inner-item main-nav__content__inner-item--level1">
                <a
href="/training/microblading/" data-menu="menu-163544" class="main-nav__content__inner-link">
  <div class="menu-item__icon">
    <img src="https://kbpro.com/media/pinpoint/snowdog/3/a/3a58e7a4532074d0d52b44cdba6b3220.png" />
  </div>
<span class="title">
  Microblading  </span>
</a>
                            </li>
                    
            <li  class="main-nav__content__inner-item main-nav__content__inner-item--level1 main-nav__content__inner-item--parent">
                <a
  id="parent"
href="/training/permanent-makeup/" data-menu="menu-163545" class="main-nav__content__inner-link">
  <div class="menu-item__icon">
    <img src="https://kbpro.com/media/pinpoint/snowdog/6/7/67aca3aefada40c7174f2d143004c934.png" />
  </div>
<span class="title">
  Permanent Brows      <span title="view more" class="main-nav__content__icon">

    </span>
  </span>
</a>
                        <ul  class="main-nav__content__inner-list main-nav__content__inner-list--level2" data-menu="menu-163545">
                    
            <li  class="main-nav__content__inner-item main-nav__content__inner-item--all main-nav__content__inner-item--level2">
                <a
href="/training/permanent-makeup/" class="main-nav__content__inner-link inner-list-header">
  <div class="menu-item__icon">
    <img src="https://kbpro.com/media/pinpoint/snowdog/6/7/67aca3aefada40c7174f2d143004c934.png" />
  </div>
<span class="title">
  Permanent Brows  </span>
</a>
            </li>
        
                    
            <li  class="main-nav__content__inner-item main-nav__content__inner-item--level2">
                <a
href="/training/permanent-makeup/brows/" data-menu="menu-163546" class="main-nav__content__inner-link">
  <div class="menu-item__icon">
    <img src="https://kbpro.com/media/pinpoint/snowdog/8/b/8b25f122d28b617b63bf14c3021e55ad.png" />
  </div>
<span class="title">
  Permanent Brows  </span>
</a>
                            </li>
                    
            <li  class="main-nav__content__inner-item main-nav__content__inner-item--level2">
                <a
href="/training/permanent-makeup/eye-lips/" data-menu="menu-163547" class="main-nav__content__inner-link">
  <div class="menu-item__icon">
    <img src="https://kbpro.com/media/pinpoint/snowdog/a/3/a327dc0e41a940218aacec6483a30009.png" />
  </div>
<span class="title">
  Permanent Eyeliner  </span>
</a>
                            </li>
                    
            <li  class="main-nav__content__inner-item main-nav__content__inner-item--level2">
                <a
href="/training/permanent-makeup/eye-lips/" data-menu="menu-163548" class="main-nav__content__inner-link">
  <div class="menu-item__icon">
    <img src="https://kbpro.com/media/pinpoint/snowdog/9/e/9ed39d76e374b33766c580cc35be0005.png" />
  </div>
<span class="title">
  Permanent Lips  </span>
</a>
                            </li>
                    
            <li  class="main-nav__content__inner-item main-nav__content__inner-item--level2">
                <a
href="/training/permanent-makeup/#model-promo" data-menu="menu-163549" class="main-nav__content__inner-link">
  <div class="menu-item__icon">
    <img src="https://kbpro.com/media/pinpoint/snowdog/6/8/68c50a86512c12388549298bb44a0c91.png" />
  </div>
<span class="title">
  Full Face Package  </span>
</a>
                            </li>
            </ul>
            </li>
                    
            <li  class="main-nav__content__inner-item main-nav__content__inner-item--level1 main-nav__content__inner-item--parent">
                <a
  id="parent"
href="" data-menu="menu-163550" class="main-nav__content__inner-link">
  <div class="menu-item__icon">
    <img src="https://kbpro.com/media/pinpoint/snowdog/2/c/2cc876a68b36fc5ed10aad807b629b78.png" />
  </div>
<span class="title">
  Masterclasses & Upskill      <span title="view more" class="main-nav__content__icon">

    </span>
  </span>
</a>
                        <ul  class="main-nav__content__inner-list main-nav__content__inner-list--level2" data-menu="menu-163550">
                    
            <li  class="main-nav__content__inner-item main-nav__content__inner-item--all main-nav__content__inner-item--level2">
                <a
href="" class="main-nav__content__inner-link inner-list-header">
  <div class="menu-item__icon">
    <img src="https://kbpro.com/media/pinpoint/snowdog/2/c/2cc876a68b36fc5ed10aad807b629b78.png" />
  </div>
<span class="title">
  Masterclasses & Upskill  </span>
</a>
            </li>
        
                    
            <li  class="main-nav__content__inner-item main-nav__content__inner-item--level2">
                <a
href="/training/fluffy-brows/" data-menu="menu-163551" class="main-nav__content__inner-link">
  <div class="menu-item__icon">
    <img src="https://kbpro.com/media/pinpoint/snowdog/3/8/38486ddd977d62cf5ec0009bed8bee71.png" />
  </div>
<span class="title">
  <font style="color: red"><strong>FREE</strong></font> Fluffy Brows*  </span>
</a>
                            </li>
                    
            <li  class="main-nav__content__inner-item main-nav__content__inner-item--level2">
                <a
href="/training/ombre-brows/" data-menu="menu-163552" class="main-nav__content__inner-link">
  <div class="menu-item__icon">
    <img src="https://kbpro.com/media/pinpoint/snowdog/6/3/63e407193ce591e5861b536ba08bfb26.png" />
  </div>
<span class="title">
  <font style="color: red"><strong>FREE</strong></font> Perfecting Ombre Brows*  </span>
</a>
                            </li>
                    
            <li  class="main-nav__content__inner-item main-nav__content__inner-item--level2">
                <a
href="/training/pigment-mixology/" data-menu="menu-163553" class="main-nav__content__inner-link">
  <div class="menu-item__icon">
    <img src="https://kbpro.com/media/pinpoint/snowdog/2/3/23331e8ecf05ebb7cf99b07fc2498c54.png" />
  </div>
<span class="title">
  Pigment Mixology  </span>
</a>
                            </li>
                    
            <li  class="main-nav__content__inner-item main-nav__content__inner-item--level2">
                <a
href="/training/advanced-brow-mapping-training/" data-menu="menu-163554" class="main-nav__content__inner-link">
  <div class="menu-item__icon">
    <img src="https://kbpro.com/media/pinpoint/snowdog/7/9/790efbef88ed8ca239a7cbacab67f4be.png" />
  </div>
<span class="title">
  Advanced Brow Mapping  </span>
</a>
                            </li>
                    
            <li  class="main-nav__content__inner-item main-nav__content__inner-item--level2">
                <a
href="/training/nipple-and-areola/" data-menu="menu-163555" class="main-nav__content__inner-link">
  <div class="menu-item__icon">
    <img src="https://kbpro.com/media/pinpoint/snowdog/b/5/b5ac7884e11f9f31a3c86874f372cbf4.png" />
  </div>
<span class="title">
  Nipple and Areola  </span>
</a>
                            </li>
            </ul>
            </li>
                    
            <li  class="main-nav__content__inner-item main-nav__content__inner-item--level1">
                <a
href="/training/finance-options/" data-menu="menu-163556" class="main-nav__content__inner-link">
  <div class="menu-item__icon">
    <img src="https://kbpro.com/media/pinpoint/snowdog/8/8/88a514d21339d8dedc6b87798f357d3c.png" />
  </div>
<span class="title">
  Finance Options  </span>
</a>
                            </li>
                    
            <li  class="main-nav__content__inner-item main-nav__content__inner-item--level1">
                <a
href="/training-dates/yorkshire" data-menu="menu-163557" class="main-nav__content__inner-link">
  <div class="menu-item__icon">
    <img src="https://kbpro.com/media/pinpoint/snowdog/7/1/71376c6827d50de013ac5e6107cf0d65.png" />
  </div>
<span class="title">
  Training Locations  </span>
</a>
                            </li>
                    
            <li  class="main-nav__content__inner-item main-nav__content__inner-item--level1 promo">
                <p><a title="Free Masterclass" href="https://nouveaubeauty.com/training-course/pmu-microblading" target="_blank" rel="noopener"><img src="https://kbpro.com/media/wysiwyg/Free_Masterclass_Nav_2_Ombre.jpg" alt="Free Masterclass" width="580" height="800"></a></p>                            </li>
            </ul>
							</li>
													
							<li class="main-nav__content__item  main-nav__content__item--parent insider-title">
								<a
  id="parent"
href="" data-menu="menu-163559" class="main-nav__content__link">
  <div class="menu-item__icon">
    <img src="https://kbpro.com/media/pinpoint/snowdog/2/4/24eeb5d505506301c6e456c8ae1d12f0.png" />
  </div>
<span class="title">
  K.B Pro Insider      <span title="view more" class="main-nav__content__icon">

    </span>
  </span>
</a>
        				        <ul  class="main-nav__content__inner-list main-nav__content__inner-list--level1" data-menu="menu-163559">
                    
            <li  class="main-nav__content__inner-item main-nav__content__inner-item--all main-nav__content__inner-item--level1">
                <a
href="" class="main-nav__content__inner-link inner-list-header">
  <div class="menu-item__icon">
    <img src="https://kbpro.com/media/pinpoint/snowdog/2/4/24eeb5d505506301c6e456c8ae1d12f0.png" />
  </div>
<span class="title">
  K.B Pro Insider  </span>
</a>
            </li>
        
                    
            <li  class="main-nav__content__inner-item main-nav__content__inner-item--level1 view-all">
                <a
href="/insider/" data-menu="menu-163560" class="main-nav__content__inner-link">
<span class="title">
  View All  </span>
</a>
                            </li>
                    
            <li  class="main-nav__content__inner-item main-nav__content__inner-item--level1">
                <a
href="/insider/artists" data-menu="menu-163561" class="main-nav__content__inner-link">
  <div class="menu-item__icon">
    <img src="https://kbpro.com/media/pinpoint/snowdog/a/1/a1f763840064cb73b11464e271982eda.png" />
  </div>
<span class="title">
  For Artists  </span>
</a>
                            </li>
                    
            <li  class="main-nav__content__inner-item main-nav__content__inner-item--level1">
                <a
href="/insider/clients/" data-menu="menu-163562" class="main-nav__content__inner-link">
  <div class="menu-item__icon">
    <img src="https://kbpro.com/media/pinpoint/snowdog/0/2/022fd64129ee3211ad097c4f8eb5fccb.png" />
  </div>
<span class="title">
  For Clients  </span>
</a>
                            </li>
                    
            <li  class="main-nav__content__inner-item main-nav__content__inner-item--level1">
                <a
href="/insider/microblading/" data-menu="menu-163563" class="main-nav__content__inner-link">
  <div class="menu-item__icon">
    <img src="https://kbpro.com/media/pinpoint/snowdog/0/3/033c112525c71dc470db9d23fde895c0.png" />
  </div>
<span class="title">
  Microblading  </span>
</a>
                            </li>
                    
            <li  class="main-nav__content__inner-item main-nav__content__inner-item--level1">
                <a
href="/insider/permanent-makeup/" data-menu="menu-163564" class="main-nav__content__inner-link">
  <div class="menu-item__icon">
    <img src="https://kbpro.com/media/pinpoint/snowdog/9/f/9fecc728adeebf35cf534a5e1f6cea45.png" />
  </div>
<span class="title">
  Permanent Makeup  </span>
</a>
                            </li>
            </ul>
							</li>
													
							<li class="main-nav__content__item  main-nav__content__item--parent shop-title">
								<a
  id="parent"
href="" data-menu="menu-163565" class="main-nav__content__link">
  <div class="menu-item__icon">
    <img src="https://kbpro.com/media/pinpoint/snowdog/6/0/60c2dd638c73b261070e21c152be07b0.png" />
  </div>
<span class="title">
  Shop on Nouveau Beauty      <span title="view more" class="main-nav__content__icon">

    </span>
  </span>
</a>
        				        <ul  class="main-nav__content__inner-list main-nav__content__inner-list--level1" data-menu="menu-163565">
                    
            <li  class="main-nav__content__inner-item main-nav__content__inner-item--all main-nav__content__inner-item--level1">
                <a
href="" class="main-nav__content__inner-link inner-list-header">
  <div class="menu-item__icon">
    <img src="https://kbpro.com/media/pinpoint/snowdog/6/0/60c2dd638c73b261070e21c152be07b0.png" />
  </div>
<span class="title">
  Shop on Nouveau Beauty  </span>
</a>
            </li>
        
                    
            <li  class="main-nav__content__inner-item main-nav__content__inner-item--level1 view-all">
                <a
href="https://nouveaubeauty.com/brands/kb-pro" data-menu="menu-163566" class="main-nav__content__inner-link">
<span class="title">
  Shop All  </span>
</a>
                            </li>
                    
            <li  class="main-nav__content__inner-item main-nav__content__inner-item--level1">
                <a
href="https://nouveaubeauty.com/pmu-microblading/microblading" data-menu="menu-163567" class="main-nav__content__inner-link">
  <div class="menu-item__icon">
    <img src="https://kbpro.com/media/pinpoint/snowdog/e/b/ebe4b06b75dbfc5497a5072bf13d7e9b.png" />
  </div>
<span class="title">
  Microblading  </span>
</a>
                            </li>
                    
            <li  class="main-nav__content__inner-item main-nav__content__inner-item--level1">
                <a
href="https://nouveaubeauty.com/pmu-microblading/needle-cartridges" data-menu="menu-163568" class="main-nav__content__inner-link">
  <div class="menu-item__icon">
    <img src="https://kbpro.com/media/pinpoint/snowdog/b/5/b530a0c74d86904ad42decced17ac0e7.png" />
  </div>
<span class="title">
  Permanent Makeup  </span>
</a>
                            </li>
                    
            <li  class="main-nav__content__inner-item main-nav__content__inner-item--level1">
                <a
href="https://nouveaubeauty.com/pmu-microblading/microblading" data-menu="menu-163569" class="main-nav__content__inner-link">
  <div class="menu-item__icon">
    <img src="https://kbpro.com/media/pinpoint/snowdog/a/a/aa2769cddfa4c7957d45462fe64f1ed7.png" />
  </div>
<span class="title">
  Glider  </span>
</a>
                            </li>
                    
            <li  class="main-nav__content__inner-item main-nav__content__inner-item--level1">
                <a
href="https://nouveaubeauty.com/brands/nouveau-contour" data-menu="menu-163570" class="main-nav__content__inner-link">
  <div class="menu-item__icon">
    <img src="https://kbpro.com/media/pinpoint/snowdog/a/b/abb363d7d3a538812b54f52a1a2f223c.png" />
  </div>
<span class="title">
  Nouveau Contour  </span>
</a>
                            </li>
            </ul>
							</li>
									</ul>
			</div>
		</div>
    
    
    </nav>

    <div class="menu-overlay"></div>


					     
  
    
   <div class="main-nav__content__links-area main-nav__content__links-area--tog footer">
     <div class="kbpro-nav kbpro-nav--footer">
       <ul class="kbpro-2__list">
                          
              <li class="kbpro-2__item ">
                <a
href="/customer/account/login" data-menu="menu-74360" class="kbpro-2__link">
  <div class="menu-item__icon">
    <img src="https://kbpro.com/media/pinpoint/snowdog/c/8/c8baa3c2c9079fc72c90c49358a895c9.png" />
  </div>
<span class="title">
  Account Log In  </span>
</a>
                              </li>
                          
              <li class="kbpro-2__item ">
                <a
href="/about-kb-pro/" data-menu="menu-74361" class="kbpro-2__link">
  <div class="menu-item__icon">
    <img src="https://kbpro.com/media/pinpoint/snowdog/5/4/548ad22b4a2f945786c7e62809fe7ef2.png" />
  </div>
<span class="title">
  About Us  </span>
</a>
                              </li>
                          
              <li class="kbpro-2__item ">
                <a
href="/contact/" data-menu="menu-74362" class="kbpro-2__link">
  <div class="menu-item__icon">
    <img src="https://kbpro.com/media/pinpoint/snowdog/0/4/04ca6e5cba618daea32eb23b0b70fcfe.png" />
  </div>
<span class="title">
  Contact Us  </span>
</a>
                              </li>
                  </ul>
   </div>
 </div>


    </nav>

    <div class="menu-overlay"></div>


			  </div>
		</li>		
		</div>

		<li class="li--combi-logo"><a href="/"><img src="https://kbpro.com/static/version1742940459/frontend/kbpro/kbpro/en_GB/images/logo/logo.svg" alt="Logo"> </a></li>

		<li class="li--mag">
			  <a class="account_link" href="https://nouveaubeauty.com/customer/account/"><img src="https://kbpro.com/static/version1742940459/frontend/kbpro/kbpro/en_GB/images/icons/nav/Nav_Icon_Account.png" alt="My Account"></a>
				<a id="account-link-mob" class="account_link" style="display:none"  href="https://nouveaubeauty.com/customer/account/"><img src="https://kbpro.com/static/version1742940459/frontend/kbpro/kbpro/en_GB/images/icons/nav/Nav_Icon_Account.png" alt="My Account"></a>

			 <!-- <a class="cart-link bag" href="/checkout/cart/">
				<img src="https://www.kbpro.com/wp-content/themes/kbpro/img/icons/cart.svg" alt="Your Cart">
			</a>   -->


		</li>
	</ul>
</div>
<script>
require(['jquery', 'jquery/ui'], function($){
 jQuery(document).ready(function(){
    jQuery(".toggle-menu").click(function(){
      jQuery(".toggle-menu").toggleClass("toggle-menu--toggle");
      jQuery(".toggle-menu__toggle-menu-icon").toggleClass("toggle-menu-icon--toggle");
      jQuery("body").toggleClass("body--nav-toggle");
      jQuery("body").toggleClass("body--nav-toggle--lock");
      jQuery("html").toggleClass("body--nav-toggle--lock");
      jQuery(".main-nav").toggleClass("main-nav--toggle");
    });
	 jQuery('#njs-toggle-menu--toggle').prop('checked', false);
    jQuery("#njs-toggle-menu--toggle").change(function(){
      jQuery(".main-nav-head").toggleClass("main-nav-head--toggle");
      jQuery("body").toggleClass("body--nav-toggle--lock");
      jQuery("html").toggleClass("body--nav-toggle--lock");
      if (jQuery(window).width() < 776) {    // Match to sm in _base.scss
        jQuery(".njs-toggle-menu").toggleClass("njs-toggle-menu--logo-shift-correction");

      }
    });
	 jQuery(".--close-menu").click(function(){
      jQuery('#njs-toggle-menu--toggle').prop('checked', false);
      jQuery(".main-nav-head").removeClass("main-nav-head--toggle");
      jQuery("body").removeClass("body--nav-toggle--lock");
      jQuery("html").removeClass("body--nav-toggle--lock");
    });

		// Remove href from parents
		jQuery("li.main-nav__content__item.main-nav__content__item--parent a.main-nav__content__link").removeAttr("href");
		jQuery("a#parent").removeAttr("href");

		// level 0 - show child items
		jQuery(".main-nav__content__item.main-nav__content__item--parent").click(function(){
		jQuery(this).children('ul', 'li').addClass("show-items");
		jQuery(this).siblings().addClass("nav-hide");
		jQuery(this).addClass("show-shop-items");
		jQuery('.kbpronav.back-button').addClass("show-btn");
		jQuery('.main-nav__content__links-area.main-nav__content__links-area--tog.footer').addClass("hide");

	});

	// Level 1 - show child items
	jQuery("li.main-nav__content__inner-item.main-nav__content__inner-item--level1.main-nav__content__inner-item--parent").click(function(){
		jQuery(this).children().addClass("show-items");
		jQuery(this).siblings().addClass("hide");
		jQuery('a.main-nav__content__link').addClass("hide");
		jQuery(this).addClass("toggle");
		jQuery('li.main-nav__content__item.main-nav__content__item--parent.show-shop-items').addClass("toggle");
});

// // Back button fuctionality on nav
jQuery("span.kbpronav.back-button").click(function(){
	// If level 2 is opened -- go back to level 1
	if (jQuery("li.main-nav__content__inner-item.main-nav__content__inner-item--level1").children().hasClass('show-items')
	&&
	jQuery("li.main-nav__content__inner-item.main-nav__content__inner-item--level1").siblings().hasClass('hide'))  {

		jQuery('li.main-nav__content__inner-item.main-nav__content__inner-item--level1').children().removeClass("show-items");
		jQuery('li.main-nav__content__inner-item.main-nav__content__inner-item--level1').siblings().removeClass("hide");
		jQuery('a.main-nav__content__link').removeClass("hide");
		jQuery('li.main-nav__content__inner-item.main-nav__content__inner-item--level1.main-nav__content__inner-item--parent').removeClass("toggle");
		jQuery('li.main-nav__content__item.main-nav__content__item--parent.show-shop-items').removeClass("toggle");

	} else if
	//	If level 1 is opened - go back to level 0
			(jQuery(".main-nav__content__item.main-nav__content__item--parent").children('ul', 'li').hasClass('show-items')
			&&
			jQuery(".main-nav__content__item.main-nav__content__item--parent").siblings().hasClass("nav-hide"))  {

				jQuery('.main-nav__content__item.main-nav__content__item--parent').children('ul', 'li').removeClass("show-items");
				jQuery('.main-nav__content__item.main-nav__content__item--parent').siblings().removeClass("nav-hide");
				jQuery('.main-nav__content__item.main-nav__content__item--parent').removeClass("show-shop-items");
				jQuery('.kbpronav.back-button').removeClass("show-btn");
				jQuery('.main-nav__content__links-area.main-nav__content__links-area--tog.footer').removeClass("hide");
			}
});

// level 0 - show child items -- bottom menu
jQuery("li.kbpro-2__item.kbpro-2__item--parent").click(function(){
jQuery(this).children('ul', 'li').addClass("show-items");
jQuery(this).siblings().addClass("nav-hide");
jQuery(this).addClass("show-items");
		jQuery('.kbpronav.back-button').addClass("show-btn");
});

// Level 1 - show child items -- bottom menu
jQuery("li.kbpro-2__inner-item.kbpro-2__inner-item--level1.kbpro-2__inner-item--parent").click(function(){
jQuery(this).children().addClass("show-items");
jQuery(this).siblings().addClass("hide");
// jQuery('a.main-nav__content__link').addClass("hide");
jQuery(this).addClass("toggle");
// jQuery('li.main-nav__content__item.main-nav__content__item--parent.show-shop-items').addClass("toggle");
});

// // Back button - bottom nav
jQuery("span.kbpronav.back-button").click(function(){
	// If level 2 is opened -- go back to level 1
	if (jQuery("li.kbpro-2__inner-item.kbpro-2__inner-item--level1.kbpro-2__inner-item--parent").children().hasClass('show-items')
	&&
	jQuery("li.kbpro-2__inner-item.kbpro-2__inner-item--level1.kbpro-2__inner-item--parent").siblings().hasClass('hide'))  {

		jQuery('li.kbpro-2__inner-item.kbpro-2__inner-item--level1.kbpro-2__inner-item--parent').children().removeClass("show-items");
		jQuery('li.kbpro-2__inner-item.kbpro-2__inner-item--level1.kbpro-2__inner-item--parent').siblings().removeClass("hide");
		// jQuery('a.main-nav__content__link').removeClass("hide");
		jQuery('li.kbpro-2__inner-item.kbpro-2__inner-item--level1.kbpro-2__inner-item--parent').removeClass("toggle");
		// jQuery('li.main-nav__content__item.main-nav__content__item--parent.show-shop-items').removeClass("toggle");

	} else if
	//	If level 1 is opened - go back to level 0
			(jQuery("li.kbpro-2__item.kbpro-2__item--parent").children('ul', 'li').hasClass('show-items')
			&&
			jQuery("li.kbpro-2__item.kbpro-2__item--parent").siblings().hasClass("nav-hide"))  {

				jQuery('li.kbpro-2__item.kbpro-2__item--parent').children('ul', 'li').removeClass("show-items");
				jQuery('li.kbpro-2__item.kbpro-2__item--parent').siblings().removeClass("nav-hide");
				jQuery('li.kbpro-2__item.kbpro-2__item--parent').removeClass("show-items");
				jQuery('.kbpronav.back-button').removeClass("show-btn");

			}
});



		/*Search Bar */

		jQuery("li.search-toggle").click(function(){
							$(".block-search").slideToggle();
				if (! jQuery(".main-nav-head").hasClass('search-togglee')) {
							jQuery('.main-nav-head').toggleClass("search-togglee");
				} else {
							jQuery('.main-nav-head').removeClass("search-togglee");
				}

		});

		jQuery(".block-search .minisearch .close").click(function(){
				if (jQuery(".main-nav-head").hasClass('search-togglee')) {
						jQuery('.main-nav-head').removeClass("search-togglee");
				}

		});

		/* Adapt nav height to current window height */
		var height = $(window).height();
		var width = $(window).width();
		var minusExtras = 107;
		var height = height - minusExtras;

		if (width <= 767) {
			$('.njs-toggle-menu .njs-toggle-menu--toggle + label + .main-nav, .njs-toggle-menu .kbpro-form .kbpro-form__form-group .njs-toggle-menu--toggle + .parsley-errors-list + .main-nav, .kbpro-form .kbpro-form__form-group .njs-toggle-menu .njs-toggle-menu--toggle + .parsley-errors-list + .main-nav').height(height);

		} else {
			var extras = 42;
			var height = height + extras;
			$('.njs-toggle-menu .njs-toggle-menu--toggle + label + .main-nav, .njs-toggle-menu .kbpro-form .kbpro-form__form-group .njs-toggle-menu--toggle + .parsley-errors-list + .main-nav, .kbpro-form .kbpro-form__form-group .njs-toggle-menu .njs-toggle-menu--toggle + .parsley-errors-list + .main-nav').height(height);
		}



$('#njs-toggle-menu--toggle').click(function() {
			 if($(this).prop("checked") == true) {
				 // alert("Checkbox is checked.");
				 	jQuery('.menu-overlay').addClass("show");
			 }
			 else if($(this).prop("checked") == false) {
				 // alert("Checkbox is unchecked.");
				 jQuery('.menu-overlay').removeClass("show");
			 }
		 });


  jQuery('input[type=radio]').change(function () {
    radioname = jQuery(this).attr("name");
    if (this.value == radioname + '_img_1') {
      jQuery('img.' + radioname + '_img_1').show();
      jQuery('img.' + radioname + '_img_2').hide();
      jQuery('img.' + radioname + '_img_3').hide();
      jQuery('img.' + radioname + '_img_4').hide();
    }
    else if (this.value == radioname + '_img_2') {
      jQuery('img.' + radioname + '_img_2').show();
      jQuery('img.' + radioname + '_img_1').hide();
      jQuery('img.' + radioname + '_img_3').hide();
      jQuery('img.' + radioname + '_img_4').hide();
    }
    else if (this.value == radioname + '_img_3') {
      jQuery('img.' + radioname + '_img_3').show();
      jQuery('img.' + radioname + '_img_1').hide();
      jQuery('img.' + radioname + '_img_2').hide();
      jQuery('img.' + radioname + '_img_4').hide();
    }
    else if (this.value == radioname + '_img_4') {
      jQuery('img.' + radioname + '_img_4').show();
      jQuery('img.' + radioname + '_img_1').hide();
      jQuery('img.' + radioname + '_img_2').hide();
      jQuery('img.' + radioname + '_img_3').hide();
    }
  });
  jQuery(".popup__toggle").click(function(){
    jQuery( this ).toggleClass('popup__toggle--toggle');
    jQuery( 'html' ).toggleClass('lock');
    jQuery( 'body' ).toggleClass('lock');
  });

  });
});
</script>

<style>

.checkout-index-index tr.grand.totals {
    order: 4;
}

</style>
        <script type="application/javascript" async
            src=https://static.klaviyo.com/onsite/js/VYeWNS/klaviyo.js ></script>

    <script type="text/x-magento-init">
        {
            "*": {
                "KlaviyoCustomerData": {}
            }
        }
    </script>
</header>    <div class="sections nav-sections">
                <div class="section-items nav-sections-items"
             data-mage-init='{"tabs":{"openedState":"active"}}'>
                                            <div class="section-item-title nav-sections-item-title"
                     data-role="collapsible">
                    <a class="nav-sections-item-switch"
                       data-toggle="switch" href="#store.menu">
                        Menu                    </a>
                </div>
                <div class="section-item-content nav-sections-item-content"
                     id="store.menu"
                     data-role="content">
                    
<nav class="navigation" data-action="navigation">
    <ul data-mage-init='{"menu":{"responsive":true, "expanded":true, "position":{"my":"left top","at":"left bottom"}}}'>
                    </ul>
</nav>
                </div>
                                    </div>
    </div>
<main id="maincontent" class="page-main"><a id="contentarea" tabindex="-1"></a>
<div class="page messages"><div data-placeholder="messages"></div>
<div data-bind="scope: 'messages'">
    <!-- ko if: cookieMessages && cookieMessages.length > 0 -->
    <div aria-atomic="true" role="alert" data-bind="foreach: { data: cookieMessages, as: 'message' }" class="messages">
        <div data-bind="attr: {
            class: 'message-' + message.type + ' ' + message.type + ' message',
            'data-ui-id': 'message-' + message.type
        }">
            <div data-bind="html: $parent.prepareMessageForHtml(message.text)"></div>
        </div>
    </div>
    <!-- /ko -->

    <!-- ko if: messages().messages && messages().messages.length > 0 -->
    <div aria-atomic="true" role="alert" class="messages" data-bind="foreach: {
        data: messages().messages, as: 'message'
    }">
        <div data-bind="attr: {
            class: 'message-' + message.type + ' ' + message.type + ' message',
            'data-ui-id': 'message-' + message.type
        }">
            <div data-bind="html: $parent.prepareMessageForHtml(message.text)"></div>
        </div>
    </div>
    <!-- /ko -->
</div>
<script type="text/x-magento-init">
    {
        "*": {
            "Magento_Ui/js/core/app": {
                "components": {
                        "messages": {
                            "component": "Magento_Theme/js/view/messages"
                        }
                    }
                }
            }
    }
</script>
</div><div class="columns"><div class="column main"><input name="form_key" type="hidden" value="yMZWZJLgskvbAHIT" /><div id="authenticationPopup" data-bind="scope:'authenticationPopup'" style="display: none;">
    <script>
        window.authenticationPopup = {"autocomplete":"off","customerRegisterUrl":"https:\/\/kbpro.com\/customer\/account\/create\/","customerForgotPasswordUrl":"https:\/\/kbpro.com\/customer\/account\/forgotpassword\/","baseUrl":"https:\/\/kbpro.com\/","customerLoginUrl":"https:\/\/kbpro.com\/customer\/ajax\/login\/"};
                    window.authenticationTextBlock = "";
            </script>
    <!-- ko template: getTemplate() --><!-- /ko -->
    <script type="text/x-magento-init">
        {
            "#authenticationPopup": {
                "Magento_Ui/js/core/app": {"components":{"authenticationPopup":{"component":"Magento_Customer\/js\/view\/authentication-popup","children":{"messages":{"component":"Magento_Ui\/js\/view\/messages","displayArea":"messages"},"captcha":{"component":"Magento_Captcha\/js\/view\/checkout\/loginCaptcha","displayArea":"additional-login-form-fields","formId":"user_login","configSource":"checkout"}}}}}            },
            "*": {
                "Magento_Ui/js/block-loader": "https\u003A\u002F\u002Fkbpro.com\u002Fstatic\u002Fversion1742940459\u002Ffrontend\u002Fkbpro\u002Fkbpro\u002Fen_GB\u002Fimages\u002Floader\u002D1.gif"
            }
        }
    </script>
</div>
<script type="text/x-magento-init">
    {
        "*": {
            "Magento_Customer/js/section-config": {
                "sections": {"stores\/store\/switch":["*"],"stores\/store\/switchrequest":["*"],"directory\/currency\/switch":["*"],"*":["messages","personal-data"],"customer\/account\/logout":["*","recently_viewed_product","recently_compared_product","persistent"],"customer\/account\/loginpost":["*"],"customer\/account\/createpost":["*"],"customer\/account\/editpost":["*"],"customer\/ajax\/login":["checkout-data","cart","captcha"],"catalog\/product_compare\/add":["compare-products"],"catalog\/product_compare\/remove":["compare-products"],"catalog\/product_compare\/clear":["compare-products"],"sales\/guest\/reorder":["cart","ammessages"],"sales\/order\/reorder":["cart","ammessages"],"checkout\/cart\/add":["cart","directory-data","ammessages"],"checkout\/cart\/delete":["cart","ammessages"],"checkout\/cart\/updatepost":["cart","ammessages"],"checkout\/cart\/updateitemoptions":["cart","ammessages"],"checkout\/cart\/couponpost":["cart","ammessages"],"checkout\/cart\/estimatepost":["cart","ammessages"],"checkout\/cart\/estimateupdatepost":["cart","ammessages"],"checkout\/onepage\/saveorder":["cart","checkout-data","last-ordered-items","ammessages"],"checkout\/sidebar\/removeitem":["cart","ammessages"],"checkout\/sidebar\/updateitemqty":["cart","ammessages"],"rest\/*\/v1\/carts\/*\/payment-information":["cart","last-ordered-items","captcha","instant-purchase","ammessages"],"rest\/*\/v1\/guest-carts\/*\/payment-information":["cart","captcha","ammessages"],"rest\/*\/v1\/guest-carts\/*\/selected-payment-method":["cart","checkout-data","ammessages"],"rest\/*\/v1\/carts\/*\/selected-payment-method":["cart","checkout-data","instant-purchase","ammessages"],"customer\/address\/*":["instant-purchase"],"customer\/account\/*":["instant-purchase"],"vault\/cards\/deleteaction":["instant-purchase"],"multishipping\/checkout\/overviewpost":["cart","ammessages"],"paypal\/express\/placeorder":["cart","checkout-data","ammessages"],"paypal\/payflowexpress\/placeorder":["cart","checkout-data","ammessages"],"paypal\/express\/onauthorization":["cart","checkout-data","ammessages"],"persistent\/index\/unsetcookie":["persistent"],"review\/product\/post":["review"],"wishlist\/index\/add":["wishlist"],"wishlist\/index\/remove":["wishlist"],"wishlist\/index\/updateitemoptions":["wishlist"],"wishlist\/index\/update":["wishlist"],"wishlist\/index\/cart":["wishlist","cart"],"wishlist\/index\/fromcart":["wishlist","cart"],"wishlist\/index\/allcart":["wishlist","cart"],"wishlist\/shared\/allcart":["wishlist","cart"],"wishlist\/shared\/cart":["cart"],"amasty_promo\/cart\/add":["cart","ammessages"],"braintree\/paypal\/placeorder":["ammessages"],"authorizenet\/directpost_payment\/place":["ammessages"],"taxswitch\/index\/switch":["cart"],"reclaim\/checkout\/reload":["cart"],"weltpixel_quickview\/index\/updatecart":["cart"]},
                "clientSideSections": ["checkout-data","cart-data"],
                "baseUrls": ["https:\/\/kbpro.com\/"],
                "sectionNames": ["messages","customer","compare-products","last-ordered-items","cart","directory-data","captcha","instant-purchase","loggedAsCustomer","persistent","review","wishlist","ammessages","personal-data","recently_viewed_product","recently_compared_product","product_data_storage","paypal-billing-agreement"]            }
        }
    }
</script>
<script type="text/x-magento-init">
    {
        "*": {
            "Magento_Customer/js/customer-data": {
                "sectionLoadUrl": "https\u003A\u002F\u002Fkbpro.com\u002Fcustomer\u002Fsection\u002Fload\u002F",
                "expirableSectionLifetime": 60,
                "expirableSectionNames": ["cart","persistent"],
                "cookieLifeTime": "3600",
                "updateSessionUrl": "https\u003A\u002F\u002Fkbpro.com\u002Fcustomer\u002Faccount\u002FupdateSession\u002F"
            }
        }
    }
</script>
<script type="text/x-magento-init">
    {
        "*": {
            "Magento_Customer/js/invalidation-processor": {
                "invalidationRules": {
                    "website-rule": {
                        "Magento_Customer/js/invalidation-rules/website-rule": {
                            "scopeConfig": {
                                "websiteId": "6"
                            }
                        }
                    }
                }
            }
        }
    }
</script>
<script type="text/x-magento-init">
    {
        "body": {
            "pageCache": {"url":"https:\/\/kbpro.com\/page_cache\/block\/render\/","handles":["default","cms_index_index","cms_page_view","cms_index_index_id_home","pl_thm_kbpro_default","pl_thm_kbpro_kbpro_default"],"originalRequest":{"route":"cms","controller":"index","action":"index","uri":"\/"},"versionCookieName":"private_content_version"}        }
    }
</script>

<div
            class="ambanners ambanner-11"
        data-position="11"
        data-role="amasty-banner-container"
></div>
<style>
    .page-main-full-width {
        margin-top: 40px !important;
    }

    .cms-home .page-main {
        display: block;
        margin-top: 0px;
        margin-top: 0;
        width: 100%;
        max-width: 100%;
        padding: 0;
    }

    #kb-background {
        background-size: 37% !important;
        background-position: 70% bottom !important;
    }

    #kb-background .content--flex--coltype-txt {
        padding-top: 90px !important;
        padding-bottom: 90px !important;
        width: 45% !important;
        margin-left: 2% !important;
    }

    @media (min-width: 2000px) {
        #kb-background {
            background-size: 25% !important;
        }

    }

    @media (max-width: 1500px) {
        #kb-background {
            background-position: 75% bottom !important;
        }

        #kb-background .content--flex--coltype-txt {
            padding-top: 55px !important;
            padding-bottom: 55px !important;
            margin-left: 7.5% !important;
        }
    }

    @media (max-width: 1250px) {
        #kb-background {
            background-position: 80% bottom !important;
        }
    }

    @media (max-width: 776px) {
        #kb-background {
            background: none !important;
        }

        #kb-background .content--flex--coltype-txt {
            padding-top: 50px !important;
            padding-bottom: 40px !important;
            width: 90% !important;
            margin-left: 0 !important;
        }

        .content.content--flex .content--flex__col.content--flex__col--padfull {
            padding: 25px;
            padding-top: 25px;
            padding-bottom: 25px;
        }
    }
</style>
<main role="main">
<div class="subheader subheader--module">
<div class="content">
<div class="header__content">
<div class="header__content--text">
<div class="header__content--title" style="font-size: 32px;">Grow &amp; Protect</div>
<br>
<h3>Forget aftercare, this is forever care.</h3>
<div class="cta-buttons"><a class="cta-button cta-button--dark" href="https://nouveaubeauty.com/kb-pro-grow-and-protect-brow-growth-serum">Buy now at nouveaubeauty.com</a></div>
</div>
</div>
<div class="header__content--img" style="background-image: url('https://kbpro.com/media/wysiwyg/KBPro/Grow_and_Protect.jpg');">&nbsp;</div>
</div>
</div>
<div class="header__title">
<h1 style="text-align: Center; padding: 10px 0;">The <span class="script">home</span> of<br>Permanent Makeup</h1>
</div>
<div id="kb-background" class="fullwidth-row fullwidth-row--white fullwidth-row--minor- fullwidth-row--minor- fullwidth-row--bordernone" style="background-image: url('/wp-content/uploads/2020/02/[email protected]'); background-size: cover; background-repeat: no-repeat;">
<div class="content content--flex content--flex--widthfull content--flex--nopad content--flex--none content--flex--hor content--flex--start content--flex--bordernone content--flex--content-center content--flex content--flex--flexnowrap">
<div class="content--flex__col content--flex__col--full content--flex__col--padfull content--flex__col--none content--flex__col--center content--flex__col--transparent content--flex__col--minor-blue content--flex__col--minor- content--flex__col--none content--flex--coltype-txt ">
<h2>K.B Pro by<br>Karen Betts</h2>
<p>Over 25 years of permanent makeup and microblading training. Award winning pigments that heal true. Innovative tools developed by professionals, for professionals. All designed &amp; developed by world class permanent makeup artist, Karen Betts.</p>
</div>
</div>
</div>
<div class="fullwidth-row fullwidth-row--blue fullwidth-row--minor-blue10 fullwidth-row--minor- fullwidth-row--bordernone">
<div id="home-training-courses" class="content content--flex content--flex--widthfull content--flex--padfull content--flex--padbottomdoub content--flex--hor content--flex--sb content--flex--bordernone content--flex--content-center content--flex content--flex--flexnowrap">
<div class="content--flex__col content--flex__col--full content--flex__col--padfull content--flex__col--none content--flex__col--center content--flex__col--transparent content--flex__col--minor-blue10 content--flex__col--minor- content--flex__col--none content--flex--coltype-txt ">
<h2>K.B Pro Training Courses</h2>
<p>Proud to have trained over 4,400 professionals, and won numerous prestigious awards, our elite permanent make up and microblading training, and ongoing mentoring service is unrivalled in the industry.</p>
<a class="cta-button cta-button--dark" href="/training/">Find out more</a></div>
</div>
</div>
<div id="home-training-courses-one" class="content content--flex content--flex--widthfull content--flex--padfull content--flex--nopadtopbottom content--flex--hor content--flex--end content--flex--bordernone content--flex--content-stretch content--flex content--flex--flexnowrap">
<div class="content--flex__col content--flex__col--half content--flex__col--nopad content--flex__col--none content--flex__col--center content--flex__col--transparent content--flex__col--minor- content--flex__col--minor- content--flex__col--none content--flex--coltype-img "><picture> <source srcset="/wp-content/uploads/2020/02/[email protected]" media="(max-width: 776px)"> <img class="img full" src="/wp-content/uploads/2020/02/[email protected]" srcset="/wp-content/uploads/2020/02/[email protected]" alt="microblading model"> </picture></div>
<div class="content--flex__col content--flex__col--half content--flex__col--paddoub content--flex__col--none content--flex__col--center content--flex__col--blue content--flex__col--minor-blue30 content--flex__col--minor- content--flex__col--none content--flex--coltype-txt ">
<h2>Microblading Training</h2>
<a class="cta-button cta-button--dark" href="/training/microblading/">Learn More</a></div>
</div>
<div id="home-training-courses-two" class="content content--flex content--flex--widthfull content--flex--padfull content--flex--nopadtop content--flex--hor content--flex--center content--flex--bordernone content--flex--content-stretch content--flex content--flex--flexnowrap reverseonmobile">
<div class="content--flex__col content--flex__col--half content--flex__col--paddoub content--flex__col--none content--flex__col--center content--flex__col--blue content--flex__col--minor-blue10 content--flex__col--minor- content--flex__col--none content--flex--coltype-txt  reverseonmobile">
<h2>Permanent Makeup Brows Training</h2>
<a class="cta-button cta-button--dark" href="/training/permanent-makeup/">Learn More</a></div>
<div class="content--flex__col content--flex__col--half content--flex__col--nopad content--flex__col--none content--flex__col--center content--flex__col--transparent content--flex__col--minor- content--flex__col--minor- content--flex__col--none content--flex--coltype-img  reverseonmobile"><picture> <source srcset="/wp-content/uploads/2020/02/PMU-BLOCK-1.jpg" media="(max-width: 776px)"> <img class="img full" src="/wp-content/uploads/2020/02/PMU-BLOCK-1.jpg" srcset="/wp-content/uploads/2020/02/PMU-BLOCK-1.jpg" alt="permanent makeup model"> </picture></div>
</div>
<div id="home-training-course-lists" class="content content--flex content--flex--widthfull content--flex--padfull content--flex--nopadtop content--flex--hor content--flex--center content--flex--bordernone content--flex--content-start content--flex content--flex--flexnowrap">
<div class="content--flex__col content--flex__col--auto content--flex__col--padhalf content--flex__col--none content--flex__col--center content--flex__col--transparent content--flex__col--minor- content--flex__col--minor- content--flex__col--none content--flex--coltype-foundationcourselist ">
<div class="course-list course-list--foundation">
<div class="course-list__inner">
<div class="course-list__inner">
<h4>Foundation Courses</h4>
<ul id="menu-foundation-course-list" class="menu">
<li id="menu-item-57654" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-57654"><a href="/training/microblading/">Microblading</a></li>
<li id="menu-item-57655" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-57655"><a href="/training/permanent-makeup/brows">Permanent Makeup Brows</a></li>
<li id="menu-item-57656" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-57656"><a href="/training/permanent-makeup/eye-lips">Permanent Makeup Eyes and Lips</a></li>
<li id="menu-item-57657" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-57657"><a href="/training/permanent-makeup/#full-face">Permanent Makeup Full Face</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="content--flex__col content--flex__col--auto content--flex__col--padhalf content--flex__col--none content--flex__col--center content--flex__col--transparent content--flex__col--minor- content--flex__col--minor- content--flex__col--none content--flex--coltype-skillupgradecourselist ">
<div class="course-list course-list--skill-upgrade">
<div class="course-list__inner">
<div class="course-list__inner">
<h4>Skill Upgrades</h4>
<ul id="menu-skill-upgrade-course-list" class="menu">
<li id="menu-item-57658" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-57658"><a href="/training/advanced-brow-mapping-training/">Advanced Brow Mapping</a></li>
<li id="menu-item-57660" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-57660"><a href="/training/pigment-mixology/">Pigment Mixology</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="content--flex__col content--flex__col--auto content--flex__col--padhalf content--flex__col--none content--flex__col--center content--flex__col--transparent content--flex__col--minor- content--flex__col--minor- content--flex__col--none content--flex--coltype-masterclasscourselist ">
<div class="course-list course-list--masterclass">
<div class="course-list__inner">
<div class="course-list__inner">
<h4>Masterclasses</h4>
<ul id="menu-masterclass-course-list" class="menu">
<li id="menu-item-57661" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-57661"><a href="/training/nipple-and-areola/">Nipple And Areola</a></li>
<li id="menu-item-57662" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-57662"><a href="/training/ombre-brows/">Ombre Brows</a></li>
<li id="menu-item-59019" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-59019"><a href="/training/fluffy-brows/">Fluffy Brows</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="fullwidth-row fullwidth-row--blue fullwidth-row--minor-blue10 fullwidth-row--minor-black60 fullwidth-row--bordernone">
<div id="kbpro-awards" class="content content--flex content--flex--widthfull content--flex--padfull content--flex--none content--flex--hor content--flex--sb content--flex--bordernone content--flex--content-center content--flex content--flex--flexnowrap">
<div class="slick-766 slick-initialized slick-slider">
<div class="slick-list draggable">
<div class="slick-track" style="opacity: 1; width: 1156px; transform: translate3d(0px, 0px, 0px);">
<div class="content--flex__col content--flex__col--full content--flex__col--padfull content--flex__col--none content--flex__col--center content--flex__col--transparent content--flex__col--minor- content--flex__col--minor-black30 content--flex__col--none content--flex--coltype-img slick-slide slick-current slick-active" style="width: 289px;" tabindex="0" data-slick-index="0" aria-hidden="false"><picture> <source srcset="/wp-content/uploads/2020/02/[email protected]" media="(max-width: 776px)"> <img class="img full" src="/wp-content/uploads/2020/02/SPCP-LEADER-AWARD.png" srcset="/wp-content/uploads/2020/02/[email protected] 2x" alt=""> </picture></div>
<div class="content--flex__col content--flex__col--full content--flex__col--padfull content--flex__col--none content--flex__col--center content--flex__col--transparent content--flex__col--minor- content--flex__col--minor- content--flex__col--none content--flex--coltype-img slick-slide slick-active" style="width: 289px;" tabindex="0" data-slick-index="1" aria-hidden="false"><picture> <source srcset="/wp-content/uploads/2020/02/SAFETY-DEVELOPMENT-AWARD.svg" media="(max-width: 776px)"> <img class="img full" src="/wp-content/uploads/2020/02/SAFETY-DEVELOPMENT-AWARD.svg" srcset="/wp-content/uploads/2020/02/SAFETY-DEVELOPMENT-AWARD.svg 2x" alt=""> </picture></div>
<div class="content--flex__col content--flex__col--full content--flex__col--padfull content--flex__col--none content--flex__col--center content--flex__col--transparent content--flex__col--minor- content--flex__col--minor- content--flex__col--none content--flex--coltype-img slick-slide slick-active" style="width: 289px;" tabindex="0" data-slick-index="2" aria-hidden="false"><picture> <source srcset="/wp-content/uploads/2020/02/MPUK-PIGMENTS-AWARD.svg" media="(max-width: 776px)"> <img class="img full" src="/wp-content/uploads/2020/02/MPUK-PIGMENTS-AWARD.svg" srcset="/wp-content/uploads/2020/02/MPUK-PIGMENTS-AWARD.svg 2x" alt=""> </picture></div>
<div class="content--flex__col content--flex__col--full content--flex__col--padfull content--flex__col--none content--flex__col--center content--flex__col--transparent content--flex__col--minor- content--flex__col--minor- content--flex__col--none content--flex--coltype-img slick-slide slick-active" style="width: 289px;" tabindex="0" data-slick-index="3" aria-hidden="false"><picture> <source srcset="/wp-content/uploads/2020/02/MPUK-CUSTOMER-AWARD.svg" media="(max-width: 776px)"> <img class="img full" src="/wp-content/uploads/2020/02/MPUK-CUSTOMER-AWARD.svg" srcset="/wp-content/uploads/2020/02/MPUK-CUSTOMER-AWARD.svg 2x" alt=""> </picture></div>
</div>
</div>
</div>
</div>
</div>
<div class="content content--flex content--flex--widthfull content--flex--padfull content--flex--nopadbottom content--flex--hor content--flex--sb content--flex--bordernone content--flex--content-center content--flex content--flex--flexnowrap">
<div class="content--flex__col content--flex__col--full content--flex__col--padfull content--flex__col--none content--flex__col--center content--flex__col--white content--flex__col--minor-blue10 content--flex__col--minor- content--flex__col--none content--flex--coltype-txt ">
<h2><span class="small">Professional Permanent Makeup</span> Products That Deliver</h2>
<p>Our professional semi permanent makeup products are reliable and results driven to deliver the best permanent makeup treatments for your clients.</p>
<p>Available to purchase at <a href="https://nouveaubeauty.com/brands/kb-pro">nouveaubeauty.com</a></p>
</div>
</div>
<div class="content content--flex content--flex--widthfull content--flex--padhalf content--flex--none content--flex--hor content--flex--sb content--flex--bordernone content--flex--content-center content--flex content--flex--flexnowrap">
<div class="content--flex__col content--flex__col--quart content--flex__col--padquart content--flex__col--none content--flex__col--center content--flex__col--white content--flex__col--minor- content--flex__col--minor- content--flex__col--none content--flex--coltype-prodcat "><a href="https://nouveaubeauty.com/pmu-microblading/pigments?one_stop_brand=6424"><img class="img" src="/wp-content/uploads/2020/02/PIGMENT-CATAGORY-BLOCK-2.jpg" alt="Pigments Image" data-rjs="2"></a>
<div class="magento-product-category__title">
<h3><a href="https://nouveaubeauty.com/pmu-microblading/pigments?one_stop_brand=6424">Shop</a><br><a href="https://nouveaubeauty.com/pmu-microblading/pigments?one_stop_brand=6424">Pigments</a></h3>
</div>
</div>
<div class="content--flex__col content--flex__col--quart content--flex__col--padquart content--flex__col--none content--flex__col--center content--flex__col--white content--flex__col--minor- content--flex__col--minor- content--flex__col--none content--flex--coltype-prodcat "><a href="https://nouveaubeauty.com/pmu-microblading/microblading?one_stop_brand=6424"><img class="img" src="/wp-content/uploads/2020/02/MICROBLADE-CATAGORY-BLOCK-2.jpg" alt="Microblades Image" data-rjs="2"></a>
<div class="magento-product-category__title">
<h3><a href="https://nouveaubeauty.com/pmu-microblading/microblading?one_stop_brand=6424">Shop</a><br><a href="https://nouveaubeauty.com/pmu-microblading/microblading?one_stop_brand=6424">Microblades</a></h3>
</div>
</div>
<div class="content--flex__col content--flex__col--quart content--flex__col--padquart content--flex__col--none content--flex__col--center content--flex__col--white content--flex__col--minor- content--flex__col--minor- content--flex__col--none content--flex--coltype-prodcat "><a href="https://nouveaubeauty.com/pmu-microblading/needle-cartridges?one_stop_brand=6424"><img class="img" src="/wp-content/uploads/2020/02/CONTOUR-CATAGORY-BLOCK.jpg" alt="Needles Image" data-rjs="2"></a>
<div class="magento-product-category__title">
<h3><a href="https://nouveaubeauty.com/pmu-microblading/needle-cartridges?one_stop_brand=6424">Shop</a><br><a href="https://nouveaubeauty.com/pmu-microblading/needle-cartridges?one_stop_brand=6424">Needles</a></h3>
</div>
</div>
<div class="content--flex__col content--flex__col--quart content--flex__col--padquart content--flex__col--none content--flex__col--center content--flex__col--white content--flex__col--minor- content--flex__col--minor- content--flex__col--none content--flex--coltype-prodcat "><a href="https://nouveaubeauty.com/pmu-microblading/pre-treatment-aftercare"><img class="img" src="/wp-content/uploads/2020/02/ESSENTIALS-CATAGORY-BLOCK-2.jpg" alt="Essentials Image" data-rjs="2"></a>
<div class="magento-product-category__title">
<h3><a href="https://nouveaubeauty.com/pmu-microblading/pre-treatment-aftercare">Shop</a><br><a href="https://nouveaubeauty.com/pmu-microblading/pre-treatment-aftercare">Essentials</a></h3>
</div>
</div>
</div>
<div class="fullwidth-row fullwidth-row--none fullwidth-row--minor- fullwidth-row--minor-black60 fullwidth-row--borderbottom">
<div class="content content--flex content--flex--widthfull content--flex--padfull content--flex--padbottom content--flex--hor content--flex--sb content--flex--bordernone content--flex--content-center content--flex content--flex--flexnowrap">
<div class="content--flex__col content--flex__col--full content--flex__col--padfull content--flex__col--none content--flex__col--center content--flex__col--white content--flex__col--minor- content--flex__col--minor- content--flex__col--none content--flex--coltype-txt "><a class="cta-button cta-button--dark" href="https://nouveaubeauty.com/brands/kb-pro">Shop All</a></div>
</div>
</div>
<div class="content content--flex content--flex--widthfull content--flex--padfull content--flex--nopadbottom content--flex--hor content--flex--sb content--flex--bordernone content--flex--content-center content--flex content--flex--flexnowrap">
<div class="content--flex__col content--flex__col--full content--flex__col--padfull content--flex__col--none content--flex__col--center content--flex__col--transparent content--flex__col--minor- content--flex__col--minor- content--flex__col--none content--flex--coltype-txt ">
<h2>Why train with K.B Pro?</h2>
</div>
</div>
<div class="fullwidth-row fullwidth-row--white fullwidth-row--minor- fullwidth-row--minor-black60 fullwidth-row--bordernone">
<div class="content content--flex content--flex--widthfull content--flex--padfull content--flex--nopadtop content--flex--hor content--flex--sb content--flex--bordernone content--flex--content-start content--flex content--flex--flexnowrap">
<div class="content--flex__col content--flex__col--full content--flex__col--nopad content--flex__col--none content--flex__col--center content--flex__col--transparent content--flex__col--minor- content--flex__col--minor- content--flex__col--none content--flex--coltype-iconstack ">
<div class="icon-block"><img src="/wp-content/uploads/2020/02/PIN.svg" alt="">
<h3>Central Location</h3>
<p>Based in West Yorkshire</p>
</div>
</div>
<div class="content--flex__col content--flex__col--full content--flex__col--padquart content--flex__col--none content--flex__col--center content--flex__col--transparent content--flex__col--minor- content--flex__col--minor- content--flex__col--none content--flex--coltype-iconstack ">
<div class="icon-block"><img src="/wp-content/uploads/2020/02/MODELS.svg" alt="">
<h3>Hands On</h3>
<p>Work on models throughout</p>
</div>
</div>
<div class="content--flex__col content--flex__col--full content--flex__col--padquart content--flex__col--none content--flex__col--center content--flex__col--transparent content--flex__col--minor- content--flex__col--minor- content--flex__col--none content--flex--coltype-iconstack ">
<div class="icon-block"><img src="/wp-content/uploads/2020/02/CONSULT-sq.svg" alt="">
<h3>Helpful</h3>
<p>Award winning mentoring support</p>
</div>
</div>
<div class="content--flex__col content--flex__col--full content--flex__col--padquart content--flex__col--none content--flex__col--center content--flex__col--transparent content--flex__col--minor- content--flex__col--minor- content--flex__col--none content--flex--coltype-iconstack ">
<div class="icon-block"><img src="/wp-content/uploads/2020/02/RENOWNED.svg" alt="">
<h3>Prestigious</h3>
<p>Recognised by industry bodies and authorities</p>
</div>
</div>
</div>
</div>
<div class="fullwidth-row fullwidth-row--blue fullwidth-row--minor-blue30">
<div class="as-seen-in">
<h3>As seen in</h3>
<a href="https://www.beautyguild.com/ " target="_blank" rel="noopener"> <img src="/wp-content/uploads/2020/01/theguild_logo_temp.png" alt="Join us on The Guild" data-rjs="2"> </a> <a href="https://www.beautyserve.com/Academy-launches-2019-training-dates.html " target="_blank" rel="noopener"> <img src="/wp-content/uploads/2020/01/guildnews_logo_temp.png" alt="Join us on Guild News" data-rjs="2"> </a> <a href="https://professionalbeauty.co.uk/site/newsdetails/k-b-pro-launches-new-level-4-qualifications-for-spmu " target="_blank" rel="noopener"> <img src="/wp-content/uploads/2020/01/professionalbeauty_logo_temp.png" alt="Join us on Professional Beauty" data-rjs="2"> </a> <a href="https://www.beautyguild.com/Guild-Gazette/View.aspx?Edition=GG201901 " target="_blank" rel="noopener"> <img src="/wp-content/uploads/2020/01/guildgazette_logo_temp.png" alt="Join us on Guild Gazette" data-rjs="2"> </a></div>
</div>
</main><script>
    require ([
        'jquery'
    ],
    function ($) {
        $(window).on("load", function () {
            require([
               'Raw_AutoUpdateCartItemQty/js/cartItemQtyUpdate'
            ]);
        });
    });
</script>
</div></div></main><footer class="page-footer"><div class="block-footer-bottom"><div class="block-footer-flex"><div class="block newsletter">
    <div class="title"><strong>Newsletter</strong></div>
    <div class="content">
        <form class="form subscribe"
            novalidate
            action="https://kbpro.com/newsletter/subscriber/new/"
            method="post"
            data-mage-init='{"validation": {"errorClass": "mage-error"}}'
            id="newsletter-validate-detail">
            <div class="field newsletter">
                <div class="control">
                    <label for="newsletter">
                        <span class="label">
                            Sign Up for Our Newsletter:                        </span>
                        <input name="email" type="email" id="newsletter"
                               placeholder="Enter your email address"
                               data-mage-init='{"mage/trim-input":{}}'
                               data-validate="{required:true, 'validate-email':true}"
                        />
                    </label>
                </div>
            </div>
            <div class="actions">
                <button class="action subscribe primary"
                        title="Subscribe"
                        type="submit"
                        aria-label="Subscribe">
                    <span>Subscribe</span>
                </button>
            </div>
        </form>
    </div>
</div>
<script type="text/x-magento-init">
    {
        "*": {
            "Magento_Customer/js/block-submit-on-send": {
                "formId": "newsletter-validate-detail"
            }
        }
    }
</script>
<div class="footer-links-wrapper">
<div class="footer-links">
<h4>ABOUT US</h4>
<ul>
<li><a href="/about-kb-pro">Our Story</a></li>
<li><a href="/insider/">K.B Pro Insider</a></li>
<li><a href="https://nouveaubeautygroup.com/careers/">Careers</a></li>
</ul>
</div>
<div class="footer-links">
<h4>CONTACT</h4>
<ul>
<li><a href="/contact">Contact Us</a></li>
</ul>
</div>
<div class="footer-links">
<h4>INFORMATION</h4>
<ul>
<li><a href="/promo-tcs/">Promo T&amp;C’S</a></li>
<li><a href="/klarna-faq/">Klarna FAQ</a></li>
<li><a href="https://kbpro.com/divide-buy-credit-faq">Divideby&nbsp;FAQs</a></li>
<li><a title="Marketing Hub" href="https://drive.google.com/drive/folders/1scaWRLFPFV7PMnEJltmRy4dSoc9dIcdo?usp=share_link" target="_blank" rel="noopener">Marketing Hub</a></li>
<li><a class="onetrusta" tabindex="0"> <span class="onetrusticon"> <img src="/media/wysiwyg/ot_persistent_cookie_icon.png" alt="OneTrust Icon" width="25" height="25"> </span> <span class="onetrusttext"> Cookie Settings </span> </a></li>
</ul>
</div>
<div class="footer-links social-icons">
<h4>FOLLOW US</h4>
<ul>
<li><a href="https://www.facebook.com/KBProUK/"> <img id="footer-social" src="https://kbpro.com/media/wysiwyg/kbpro_facebook.svg"> </a></li>
<li><a href="https://www.instagram.com/kbprouk/?hl=en"> <img id="footer-social" src="https://kbpro.com/media/wysiwyg/kbpro_instagram.svg"> </a></li>
<li><a href="https://www.youtube.com/user/KarenBettsTV/featured"> <img id="footer-social" src="https://kbpro.com/media/wysiwyg/kbpro_youtube.svg"> </a></li>
</ul>
</div>
</div>
<style>
  .menu-overlay {
    display: none !important;
  }

  .menu-overlay.show {
    display: none !important;
  }

  .body--nav-toggle--lock .menu-overlay.show {
    display: block !important;
  }

  .block.filter {
    display: none;
  }

  .page-products .toolbar .limiter {
    display: none !important;
  }

  .sorter {
    float: unset;
  }

  .toolbar.toolbar-products {
    display: block;
    flex-direction: row;
    margin-left: auto;
    margin-right: auto;
    width: auto;
    margin-bottom: 5px;
    text-align: center;
  }

  .field.choice.magento-newsletter {
    display: none;
  }

  h4 {
    margin-bottom: 10px;
  }

  footer .block-footer-bottom .footer-links-wrapper .footer-links ul li {
    padding: 0;
    margin-bottom: 10px;
  }

  footer .block-footer-bottom .footer-links-wrapper .footer-links ul li>a {
    margin-top: 0px;
    font-size: 14px;
    text-transform: inherit;
    letter-spacing: 1px;
    color: #3C3C3B;
    font-weight: 300;
    text-decoration: none;
    line-height: 0;
  }

  footer .block-footer-bottom .footer-links-wrapper .footer-links.social-icons ul li a img {
    width: 40px;
  }

  .block-footer-flex {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    max-width: 75%;
    display: block;
    margin-left: auto;
    margin-right: auto;
  }

  .block-footer-bottom {
    max-width: 100%;
    padding: 0px;
  }

  .dividebuy-tooltip {
    z-index: 300000000;
  }

  .page .block-footer-flex {
    width: 100% !important;
    max-width: 100%;
  }

  .page .main-nav-head ul li.li--mag .minicart-wrapper .action.showcart:before {
    content: url('https://kbpro.com/shop/static/frontend/kbpro/kbpro/en_GB/images/icons/cart.svg');
    position: relative;
    top: 3px;
  }

  .page .main-nav-head ul li.li--mag .minicart-wrapper {
    background: none;
  }

  .category .block-footer-flex {
    width: 100% !important;
    max-width: 100%;
  }

  .category .main-nav-head ul li.li--mag .minicart-wrapper .action.showcart:before {
    content: url('https://kbpro.com/shop/static/frontend/kbpro/kbpro/en_GB/images/icons/cart.svg');
    position: relative;
    top: 3px;
  }

  .category .main-nav-head ul li.li--mag .minicart-wrapper {
    background: none;
  }

  .post-template .block-footer-flex {
    width: 100% !important;
    max-width: 100%;
  }

  .page-template-training--pmu--full-face .section-ten .slider-split .slider-split__section--slider .cta-button,
  .page-template-training--general .section-ten .slider-split .slider-split__section--slider .cta-button,
  .page-template-training--parent .section-ten .slider-split .slider-split__section--slider .cta-button,
  .page-template-training--microblading .section-ten .slider-split .slider-split__section--slider .cta-button {
    color: #3c3c3b !important;
  }

  .post-template .main-nav-head ul li.li--mag .minicart-wrapper .action.showcart:before {
    content: url('https://kbpro.com/shop/static/frontend/kbpro/kbpro/en_GB/images/icons/cart.svg');
    position: relative;
    top: 3px;
  }

  .post-template .main-nav-head ul li.li--mag .minicart-wrapper {
    background: none;
  }

  @media (min-width: 400px) and (max-width:441px) {
    footer .block-footer-bottom .footer-links-wrapper .footer-links.social-icons ul li a img {
      width: 36px;
    }
  }

  /* All Mobiles */
  @media (max-width: 767px) {
    .header .block-search {
      z-index: 10000;
    }

    .dividebuy-payment-description .dividebuy-checkout-header .interest-main-figure,
    .dividebuy-payment-description .dividebuy-checkout-header .interest-digit {
      font-size: 13px !important;
    }
  }

  .checkout-index-index .page-header img {
    max-width: 200px;
    display: block;
    margin-left: auto;
    margin-right: auto;
  }

  .checkout-index-index main#maincontent {
    margin-top: 0px;
  }

  @media (max-width: 399px) {
    .footer-links {
      margin-right: 0 !important;
      height: 100%;
      display: block;
      float: left;
      widtH: 80% !important;
      max-width: 100%;
      margin-top: 10px;
    }

    .block-footer-bottom .footer-links-wrapper .footer-links.social-icons ul li {
      margin-left: 8%;
    }

    .block-footer-bottom .footer-links-wrapper {
      height: auto;
      text-align: center;
    }
  }

  .catalog-product-view .dividebuy {
    display: none;
  }

  .catalog-product-view form#enquiry-form {
    display: none;
  }
  
    #ot-sdk-btn-floating {
	display:none;
}
.onetrusta {
	text-align: left;
	cursor: pointer;
	width: 100%;
	display: inline-flex !important;
	align-items: center !important;

}
.onetrusticon {
	display: inline-flex;
}
.onetrusticon img {
	filter: brightness(0%);
}
.onetrusttext {
	 display: inline-flex;
	 margin-left: 5px;
}
</style></div></div><div class="footer-links-company"><div class="footer-copy-area"><div class="footer-trust-payments"><div class="trustpilot-footer">

<!-- TrustBox widget - Micro Combo -->
<div class="trustpilot-widget" id="desktop" data-locale="en-GB" data-template-id="5419b6ffb0d04a076446a9af" data-businessunit-id="5e139b1335c25300015501d3" data-style-height="20px" data-style-width="100%" data-theme="light">
<a href="https://uk.trustpilot.com/review/kbpro.com" target="_blank" rel="noopener">Trustpilot</a>
</div>
<!-- End TrustBox widget -->


<!-- TrustBox widget - Horizontal -->
<div class="trustpilot-widget"  id="mobile" data-locale="en-GB" data-template-id="5406e65db0d04a09e042d5fc" data-businessunit-id="5e139b1335c25300015501d3" data-style-height="28px" data-style-width="100%" data-theme="light">
  <a href="https://uk.trustpilot.com/review/kbpro.com" target="_blank" rel="noopener">Trustpilot</a>
</div>
<!-- End TrustBox widget -->
</div>

<div class="payment-methods"><img src="https://kbpro.com/media/wysiwyg/KBPro/Footer_Icon_Mastercard_1_.png" alt="" width="82" height="48"> <img src="https://kbpro.com/media/wysiwyg/KBPro/Footer_Icon_Maestro_1_.png" alt="" width="82" height="48"> <img src="https://kbpro.com/media/wysiwyg/KBPro/Footer_Icon_Visa-Electron_1_.png" alt="" width="82" height="48"> <img src="https://kbpro.com/media/wysiwyg/KBPro/Footer_Icon_Visa_1_.png" alt="" width="82" height="48"> <img src="https://kbpro.com/media/wysiwyg/KBPro/Footer_Icon_Klarna_1_.png" alt="" width="82" height="48">&nbsp;</div></div></div><div class="footer-copy"><div class="copyright-container">
<div class="footer-copyright"><p><a title="https://kbpro.com/" href="https://kbpro.com/" rel="nofollow">© K.B Pro, 2024. Proud to be part of © Nouveau HD Beauty Group.</a></p></div>
<div class="footer-links-copy"><a id="footer-links-copy-a" href="/terms-of-supply">Terms &amp; Conditions</a> <a id="footer-links-copy-a" href="/privacy-policy">Privacy Policy</a> <a id="footer-links-copy-a" href="/shop/cookie-policy">Cookie Policy</a></div>
<style>
div#checkout {
    margin-top: 70px;
}
.checkout-cart-index tr.totals.sub.incl {
    display: none !important;
}
tr.totals.sub.excl span:nth-child(2) {
    display: none;
}
.subtotal span.price-wrapper.price-excluding-tax {
    display: none;
}

.mmClosable {
    z-index: 30000000 !important;
}

.checkout-onepage-success .main-nav-head {
    position: fixed;
    z-index: 300;
}

ul#ui-id-2 {
    display: none;
}

.catalog-product-view #minicart-content-wrapper .price-wrapper {
    text-align: right;
}

.block-minicart span#delivery-details {
    text-align: left;
    float: left;
    margin: 0 10px 0;
    text-transform: initial;
    font-size: 12px;
    clear: both;
}

.sections.nav-sections {
    margin-top: 115px;
    margin: 42px;
}

table.data.table.totals tr.totals {
    order: 4;
}

tr.grand.totals {
    order: 4;
}

.checkout-index-index tr.totals.sub.incl {
    display: none !important;
}

.amblog-index-index .page-title-wrapper {
    max-width: 1000px;
    margin: auto;
}
.amblog-index-index .amblog-post-container {
    min-height: 650px;
}
.amblog-container-list .amblog-post-container .amblog-post-title {
    max-width: none;
    font-size: 1.4rem;
    font-weight: 400;
    text-transform: none;
    letter-spacing: 0;
    line-height: 1.2;
}
.amblog-post-container .amblog-read {
    background-color: transparent;
    text-align: left;
}
.amblog-container-list .amblog-post-container .amblog-content {
    height: unset;
}

.main-nav__content__links-area.main-nav__content__links-area--tog img {
width:auto !important;
}

li.main-nav__content__inner-item.main-nav__content__inner-item--level1 {
    padding: 13px 0;
    border-bottom: 1px solid #f2f2f2;
    height: 58.5px !important;
    background: #fff;
}
</style></div>
<script>
require(['jquery', 'jquery/ui'], function($){
  jQuery(document).ready( function() {
  jQuery('input[type=radio]').change(function () {
    radioname = jQuery(this).attr("name");
    if (this.value == radioname + '_img_1') {
      jQuery('img.' + radioname + '_img_1').show();
      jQuery('img.' + radioname + '_img_2').hide();
      jQuery('img.' + radioname + '_img_3').hide();
      jQuery('img.' + radioname + '_img_4').hide();
    }
    else if (this.value == radioname + '_img_2') {
      jQuery('img.' + radioname + '_img_2').show();
      jQuery('img.' + radioname + '_img_1').hide();
      jQuery('img.' + radioname + '_img_3').hide();
      jQuery('img.' + radioname + '_img_4').hide();
    }
    else if (this.value == radioname + '_img_3') {
      jQuery('img.' + radioname + '_img_3').show();
      jQuery('img.' + radioname + '_img_1').hide();
      jQuery('img.' + radioname + '_img_2').hide();
      jQuery('img.' + radioname + '_img_4').hide();
    }
    else if (this.value == radioname + '_img_4') {
      jQuery('img.' + radioname + '_img_4').show();
      jQuery('img.' + radioname + '_img_1').hide();
      jQuery('img.' + radioname + '_img_2').hide();
      jQuery('img.' + radioname + '_img_3').hide();
    }
  });
  });
});
</script>
</div></div></footer><span data-bind="scope: 'personalData'" style="display:none;">
    <!-- ko if: personalData().klevuSessionId -->
    <span id="klevu_sessionId" data-bind="text: personalData().klevuSessionId"></span>
    <!-- /ko -->
    <!-- ko if: personalData().klevuLoginCustomerGroup -->
    <span id="klevu_loginCustomerGroup" data-bind="text: personalData().klevuLoginCustomerGroup"></span>
    <!-- /ko -->
    <!-- ko if: personalData().klevuIdCode -->
    <span id="klevu_loginCustomerEmail" data-bind="text: personalData().klevuIdCode"></span>
    <!-- /ko -->
    <!-- ko if: personalData().klevuShopperIP -->
    <span id="klevu_shopperIP" data-bind="text: personalData().klevuShopperIP"></span>
    <!-- /ko -->
</span>
<script type="text/x-magento-init">
{"*": {"Magento_Ui/js/core/app": {"components":{"personalData":{"component":"Klevu_Search\/js\/view\/personal-data"}}}}}
</script>
<script type="text/x-magento-init">
        {
            "*": {
                "Magento_Ui/js/core/app": {
                    "components": {
                        "storage-manager": {
                            "component": "Magento_Catalog/js/storage-manager",
                            "appendTo": "",
                            "storagesConfiguration" : {"recently_viewed_product":{"requestConfig":{"syncUrl":"https:\/\/kbpro.com\/catalog\/product\/frontend_action_synchronize\/"},"lifetime":"1000","allowToSendRequest":"0"},"recently_compared_product":{"requestConfig":{"syncUrl":"https:\/\/kbpro.com\/catalog\/product\/frontend_action_synchronize\/"},"lifetime":"1000","allowToSendRequest":"0"},"product_data_storage":{"updateRequestConfig":{"url":"https:\/\/kbpro.com\/rest\/kbpro\/V1\/products-render-info"},"requestConfig":{"syncUrl":"https:\/\/kbpro.com\/catalog\/product\/frontend_action_synchronize\/"},"allowToSendRequest":"0"}}                        }
                    }
                }
            }
        }
</script>
<script data-ommit="true">

    document.addEventListener("DOMContentLoaded", () => 
    {
    	let bind = () => 
    	{
    		Object.entries(
	    	{
	    		addToCart: event => 
	    		{
	    			AEC.add(event.currentTarget, dataLayer);
	    		},
	    		removeFromCart:event => 
	    		{
	    			AEC.remove(event.currentTarget, dataLayer);
	    		},
	    		productClick:event => 
	    		{
	    			AEC.click(event.currentTarget, dataLayer);	
	    		},
	    		addToWishlist:event => 
	    		{
	    			AEC.wishlist(event.currentTarget, dataLayer);
	    		},
	    		addToCompare:event => 
	    		{
	    			AEC.compare(event.currentTarget, dataLayer);
	    		},
	    		addToCartSwatch:event => 
	    		{
	    			AEC.addSwatch(event.currentTarget, dataLayer);
	    		}
	        }).forEach(([event, callback]) => 
	    	{
	    	    [...document.querySelectorAll('[data-event]:not([data-bound])')].filter(element => { return element.dataset.event === event; }).forEach(element => 
	        	{
	            	element.addEventListener('click', callback);

	            	element.dataset.bound = true;
	        	});
		  	});
        };

        bind();

        if("PerformanceObserver" in window)
        {
        	const observer = new PerformanceObserver((items) => 
        	{
                items.getEntries().filter(({ initiatorType }) => initiatorType === "xmlhttprequest").forEach((entry) => 
                {
                    bind();
                });
      		});

      		observer.observe(
      		{
          		entryTypes: ["resource"]
      		});
        }
    });
    
</script><script data-ommit="true">

    document.addEventListener("DOMContentLoaded", () => 
    {
    	var PromotionTrack = ((dataLayer) => 
	    {
	        return {
	            apply: () => 
	            {
	                var promotions = [], position = 0;
	
	                document.querySelectorAll('[data-promotion]').forEach(promotion => 
	                {
						let entity =
						{
                            id:      	promotion.dataset.promotionId,
                            name:    	promotion.dataset.promotionName,
                            creative:	promotion.dataset.promotionCreative,
                            position:	promotion.dataset.promotionPosition
                        };

	                	AEC.EventDispatcher.trigger('ec.cookie.promotion.entity', entity, 
	    	            {
		    	            element: promotion
		    	        });

	                    promotions.push(entity);

	                    promotion.addEventListener('click', (event) => 
	                    {
	                    	var data = 
	                        {
                       			'event': 'promotionClick',
                                'ecommerce': 
                                {
                                    'promoClick': 
                                    {
                                        'promotions':
                                        [
                                            {
                                                'id':       event.target.dataset.promotionId,
                                                'name':     event.target.dataset.promotionName,
                                                'creative': event.target.dataset.promotionCreative,
                                                'position': event.target.dataset.promotionPosition
                                            }
                                        ]
                                    }
                                }
			                };
			                
                            AEC.Cookie.promotionClick(data, promotion).push(dataLayer);

                            /**
                             * Save persistent data
                             */
                            AEC.Persist.push(AEC.Persist.CONST_KEY_PROMOTION,
	                        {
    	                        'promotion':data.ecommerce.promoClick.promotions[0]
    	                    });
		                });
	                });
	
	                if (promotions.length)
	                {
		                AEC.Cookie.promotion(
				        {
	                        'event':'promoViewNonInteractive',
                            'ecommerce':
                            {
                                'promoView':
                                {
                                    'promotions': promotions
                                }
                            }
                        }).push(dataLayer);
	                }
	
	                return this;
	            }
	        }
	    })(dataLayer).apply();
    });
</script><script data-ommit="true">

    document.addEventListener("DOMContentLoaded", () =>
    {
    	(() =>
    	{
    		let map = {}, trace = {};

    		document.querySelectorAll('[data-widget]').forEach((element) =>
            {
                let widget = element.dataset.widget;

                var twodec = element.dataset.price;
          			twodec = (Math.round(twodec*100)/100).toFixed(2);

            	let entity =
    			{
    				id: 				   element.dataset.id,
    				name: 				   element.dataset.name,
    				category:			   element.dataset.category,
    				brand:				   element.dataset.brand,
    				list:				   element.dataset.list,
    				price:		parseFloat(twodec),
    				position: 	parseFloat(element.dataset.position)
            	};

            	let attributes = element.dataset.attributes;

            	if (attributes)
    	        {
        	        Object.entries(JSON.parse(attributes)).forEach(([key, value]) =>
        	        {
            	        entity[key] = value;
        	        });
        	    }

        	    if (!map.hasOwnProperty(widget))
        	    {
            	    map[widget] = [];

            	    map[widget].trace = {};
            	    map[widget].entry = [];
        	    }

        	    if (!map[widget].trace.hasOwnProperty(element.dataset.id))
        	    {
        	    	map[widget].trace[element.dataset.id] = true;

            	    map[widget].entry.push(entity);
        	    }
            });

    		Object.entries(map).forEach(([key, value]) =>
	        {
		        if (value.entry.length)
		        {
    		        let data =
    			    {
    					event: 'widgetViewNonInteractive',
    					ecommerce:
    					{
    						actionField:
    						{
    							list: 		  value.entry.find(Boolean).list,
    							currency: "GBP"    						},
    						impressions: value.entry
    					}
    				};

    		        if ('undefined' !== typeof dataLayer)
    				{
    					(function(callback)
    					{
    						if (AEC.Const.COOKIE_DIRECTIVE)
    						{
    							AEC.CookieConsent.queue(callback).process();
    						}
    						else
    						{
    							callback.apply(window,[]);
    						}
    					})
    					(
    						(function(dataLayer, data)
    						{
    							return function()
    							{
    								AEC.EventDispatcher.trigger('ec.widget.view.data', data);

    								dataLayer.push(data);
    							}
    						})(dataLayer, data)
    					);
    				}
		        }
	        });
    	})();
    });

</script>
<script data-ommit="true">

	if (typeof dataLayer !== "undefined")
	{
				
		AEC.Request.get(AEC.url('datalayer/index/events'), {}, response => 
		{
			Object.entries(response.events).forEach(([key, event]) => 
			{
				dataLayer.push(event);
			});
		});

				
		AEC.EventDispatcher.on('ec.facebook.loaded', () => 
		{
					});
		
		for (a = 0, b = EC.length; a < b; a++)
		{
			EC[a].apply(this,[dataLayer]);
			EC[a].apply(this,[dataLayerTransport]);
		}

				
		if (window.google_tag_params)
		{
			(function(callback)
			{
				if (AEC.Const.COOKIE_DIRECTIVE)
				{
					if (!AEC.Const.COOKIE_DIRECTIVE_CONSENT_GRANTED)
					{
						AEC.CookieConsent.queue(callback);
					}
					else
					{
						callback.apply(window,[]);
					}
				}
				else 
				{
					callback.apply(window,[]);
				}
			})
			(
				(function(dataLayer)
				{
					return () => 
					{
						AEC.Cookie.remarketing({ event:'fireRemarketingTag', google_tag_params: window.google_tag_params }).push(dataLayer);
					}
				})(dataLayer)
			);
		}

		
			}
	else
	{
		console.log('dataLayer[] is not intialized. Check if GTM is installed properly');
	}
	
</script><div style="display: none;" id="attentiveMagentoPage"></div>
<script type="text/javascript">
// Enable CMS for klevu template
	var klevu_cmsSearchEnabled = false;
     
</script>

<script>
    require(['jquery', 'Magento_Customer/js/customer-data'], function ($, customerData) {
        var sections = ['cart'];
        setTimeout(function () {
            customerData.reload(sections, true);
        }, 3000);
    });
</script>
<script type="text/javascript" async>
    var w = document.createElement("script");
    w.type = "text/javascript";
    w.src = "//widget.trustpilot.com/bootstrap/v5/tp.widget.bootstrap.min.js";
    w.async = true;
    document.head.appendChild(w);
</script>
<script type="text/javascript">
    (function(w,d,s,r,n){w.TrustpilotObject=n;w[n]=w[n]||function(){(w[n].q=w[n].q||[]).push(arguments)};
    a=d.createElement(s);a.async=1;a.src=r;a.type='text/java'+s;f=d.getElementsByTagName(s)[0];
    f.parentNode.insertBefore(a,f)})(window,document,'script', 'https://invitejs.trustpilot.com/tp.min.js', 'tp');
    tp('register','Tu8DfxRqoRoQ0Z9X');
</script>
<script type="text/javascript">
    function inIframe () {
        try {
            return window.self !== window.top;
        } catch (e) {
            return false;
        }
    }

    function tryParseJson(str) {
        if (typeof str === 'string') {
            try {
                return JSON.parse(str);
            } catch (e) {
                return false;
            }
        }
        return false;
    }

    if (inIframe()) {
        window.addEventListener('message', function(e) {
            var adminOrign = new URL(window.location).hostname;
            var eventOriginHostname = new URL(e.origin).hostname;
            if (!e.data || adminOrign !== eventOriginHostname) {
                return;
            }
            if (typeof TrustpilotPreview !== 'undefined') {
                if (typeof e.data === 'string' && e.data === 'submit') {
                    TrustpilotPreview.sendTrustboxes();
                } else {
                    jsonData = tryParseJson(e.data);
                    if (jsonData.trustbox) {
                        TrustpilotPreview.setSettings(jsonData.trustbox);
                    } else if (jsonData.customised) {
                        TrustpilotPreview.updateActive(jsonData.customised);
                    }
                }
            } else {
                var settings = tryParseJson(e.data);
                if (settings) {
                    var p = document.createElement("script");
                    p.type = "text/javascript";
                    p.onload = function () {
                        const iFrame = e.source.parent.document.getElementById('configuration_iframe').contentWindow;
                        TrustpilotPreview.init(['//ecommplugins-scripts.trustpilot.com/v2.1/css/preview.min.css'], settings, iFrame, e.source);
                    };
                    p.src = '//ecommplugins-scripts.trustpilot.com/v2.1/js/preview.min.js';
                    document.head.appendChild(p);
                }
            }
        });
    }
</script><script type="text/javascript" async>
    const trustpilot_trustbox_settings = {"trustboxes":[]};
    if (trustpilot_trustbox_settings) {
        document.addEventListener('DOMContentLoaded', function() {
            tp('trustBox', trustpilot_trustbox_settings);
        });
    }
</script><div class="widget block block-static-block">
    <script>
require(['jquery', 'jquery/ui'], function ($) {

  var pathname = window.location;

  // GA4 select_item_fix Category Page
  if ($("body").hasClass("catalog-category-view")) {
    $(document).on('click', '.product-item-photo', function() {
            var twodecimals = $(this).attr('data-price');
            twodecimals = (Math.round(twodecimals*100)/100).toFixed(2);
            dataLayer.push({
              'event': 'select_item_fix',
              'ecommerce': {
                            'currency' : 'GBP',
                            'value' : twodecimals,
                            'items_fix': [{
                                      'item_id': $(this).attr('data-id'),
                                      'item_name': $(this).attr('data-name'),
                                      'currency': "GBP",
                                      'item_brand': AEC.storeName,
                                      'item_category':  $(this).attr('data-list'),
                                      'price': twodecimals,
                                      'quantity': 1
                                      }],
                        },
            });
    });
    $(document).on('click', '.product-item-name', function() {
      var pPhotohref = $(this).parent().attr('href');
      var pPhotoHrefPrice = $(this).parent().attr('data-price');
      var pPhotoHrefId = $(this).parent().attr('data-id');
      var pPhotoHrefname = $(this).parent().attr('data-name');
      var pPhotoHrefBrand = $(this).parent().attr('data-brand');
      var pPhotoHrefList = $(this).parent().attr('data-list');
        var twodecimals = pPhotoHrefPrice;
        twodecimals = (Math.round(twodecimals*100)/100).toFixed(2);
        dataLayer.push({
          'event': 'select_item_fix',
          'ecommerce': {
                        'currency' : 'GBP',
                        'value' : twodecimals,
                        'items_fix': [{
                                  'item_id': pPhotoHrefId,
                                  'item_name': pPhotoHrefname,
                                  'currency': "GBP",
                                  'item_brand': AEC.storeName,
                                  'item_category':  pPhotoHrefList,
                                  'price': twodecimals,
                                  'quantity': 1
                                }],
                    },
        });
    });
  }

  // GA4 select_item_fix Category Page
  if ($("body").hasClass("catalog-category-view")) {
    $(document).on('click', '.tocart', function() {
      var twodecimals = $(this).attr('data-price');
      twodecimals = (Math.round(twodecimals*100)/100).toFixed(2);
      dataLayer.push({
        'event': 'select_item_fix',
        'ecommerce': {
                      'currency' : 'GBP',
                      'value' : twodecimals,
                      'items_fix': [{
                                'item_id': $(this).attr('data-id'),
                                'item_name': $(this).attr('data-name'),
                                'currency': "GBP",
                                'item_brand': AEC.storeName,
                                'item_category':  $(this).attr('data-list'),
                                'price': twodecimals,
                                'quantity': 1
                               }],
                  },
           });
      });
   }

  /*----------------------
  ---------BREAK ---------
  -----------------------*/

    // GA4 add_to_wishlist Product Page
    if ($("body").hasClass("catalog-product-view")) {
      $(document).on('click', '.towishlist', function() {
          var twodecimals = $('#product-addtocart-button').attr('data-price');
          twodecimals = (Math.round(twodecimals*100)/100).toFixed(2);
          dataLayer.push({
            'event': 'add_to_wishlist',
            'ecommerce': {
                          'add_to_wishlist_type' : 'FULL_VIEW',
                          'currency' : 'GBP',
                          'value' : twodecimals,
                              'items': [{
                                    'item_id': $('#product-addtocart-button').attr('data-id'),
                                    'item_name': $('#product-addtocart-button').attr('data-name'),
                                    'currency': "GBP",
                                    'item_brand': AEC.storeName,
                                    'item_category':  $('#product-addtocart-button').attr('data-list'),
                                    'price': twodecimals,
                                    'quantity': 1
                                    }],
                      },
          });
      });
    }

    // GA4 add_to_wishlist Category Page
    if ($("body").hasClass("catalog-category-view")) {
          $(document).on('click', '.towishlist', function() {
          let getWishlistSku = $(this).closest('a').nextAll('.offwishlist').attr('data-bind');
          getWishlistSku = getWishlistSku.replace("afterRender: checkIfOnWishlist('", "");
          getWishlistSku = getWishlistSku.replace("', $element)", "");
          let wishdata = $('[data-id="'+getWishlistSku+'"]');
          var twodecimals = $(wishdata).attr('data-price');
          twodecimals = (Math.round(twodecimals*100)/100).toFixed(2);
          dataLayer.push({
            'event': 'add_to_wishlist',
            'ecommerce': {
                          'add_to_wishlist_type' : 'LIST_VIEW',
                          'currency' : 'GBP',
                          'value' : twodecimals,
                          'items': [{
                                    'item_id': $(wishdata).attr('data-id'),
                                    'item_name': $(wishdata).attr('data-name'),
                                    'currency': "GBP",
                                    'item_brand': AEC.storeName,
                                    'item_category':  $(wishdata).attr('data-list'),
                                    'price': twodecimals,
                                    'quantity': 1
                                  }],
                          },
                    });
          });
      }

  /*----------------------
  ---------BREAK ---------
  -----------------------*/

  // GA4 menu_header_click event
  $(document).on("click", "#pro-link", function () {
      var nameText = $(this).text();
      var path = $(this).attr('href');
      dataLayer.push({
        'event': 'menu_header_click',
        'menu_item': {
                      'name': nameText,
                      'path': path
                 },
      });
  });
  $(document).on("click", "#account-link", function () {
      var nameText = $(this).text();
      var path = $(this).attr('href');
      dataLayer.push({
        'event': 'menu_header_click',
        'menu_item': {
                      'name': nameText,
                      'path': path
                 },
      });
  });
   $(document).on("click", ".main-menu__link", function () {
       var step1 = $(".title", this).text();
       var step1a = $(this).attr('href');
       step1 = step1.trimStart();
       step1 = step1.trimEnd();
       window.step1Var = step1;
       window.step1aVar = step1a;
   });

   $(document).on("click", ".main-menu__inner-link", function () {
     if (!$(this).parent().hasClass('main-menu__inner-item--parent'))
        {
            var step2 = $(".title", this).text();
            var step2a = $(this).attr('href');
            step2 = step2.trimStart();
            step2 = step2.trimEnd();
            if (step2a !== undefined){
              if (window.step3Var !== undefined) {
                var path = window.step1Var + ' > ' + window.step3Var + ' > ' + step2;
                dataLayer.push({
                  'event': 'menu_header_click',
                  'menu_item': {
                                'name': step2,
                                'path': path
                           },
                });
              }
              if (window.step3Var == undefined) {
                  var path = window.step1Var + ' > ' + step2;
                  dataLayer.push({
                    'event': 'menu_header_click',
                    'menu_item': {
                                  'name': step2,
                                  'path': path
                             },
                  });
              }
            }
        }
      if ($(this).parent().hasClass('main-menu__inner-item--parent'))
       {
            var step3 = $(".title", this).text();
            step3 = step3.trimStart();
            step3 = step3.trimEnd();
            window.step3Var = step3;
       }
   });


   /*----------------------
   ---------BREAK ---------
   -----------------------*/

   // GA4 banner_home_click event
   if ($("body").hasClass("cms-index-index")) {
       $(document).on("click", ".hero-image", function () {
            var aHref = $(this).find('a').attr('href');
            var aHref = aHref.replace('https://kbpro.com','');
            var altText = $(this).find('img').attr('alt');
             dataLayer.push({
               'event': 'banner_home_click',
               'menu_item': {
                             'name': altText,
                             'path': aHref
                           },
             });
       });
     }

     /*----------------------
     ---------BREAK ---------
     -----------------------*/

     // GA4 banner_horizontal_click event
     if ($("body").hasClass("cms-index-index")) {
         $(document).on("click", ".container__link-salmon", function () {
              var aHref = $(this).attr('href');
              var altText = $(this).text();
               dataLayer.push({
                 'event': 'banner_horizontal_click',
                 'menu_item': {
                               'name': altText,
                               'path': aHref
                             },
               });
         });
       }

       /*----------------------
       ---------BREAK ---------
       -----------------------*/

       // GA4 signup newsletter event
       if ($("body").hasClass("cms-thank-you-browboss")) {
             dataLayer.push({
               'event': 'signup_newsletter',
               'menu_item': {
                             'name': altText,
                             'path': aHref
                           },
             });
      }


      /*----------------------
      ---------BREAK ---------
      -----------------------*/

      // GA4 menu footer click event
      $(document).on("click", ".footer-menu__inner-link", function () {

        var aHref = $(this).attr('href');
        var aHref = aHref.replace('https://kbpro.com','');
        var footerText = $(".title", this).text();
        footerText = footerText.trimStart();
        footerText = footerText.trimEnd();
            dataLayer.push({
              'event': 'menu_footer_click',
              'menu_item': {
                            'name': footerText,
                            'path': aHref
                       },
            });
      });

      /*----------------------
      ---------BREAK ---------
      -----------------------*/

      // GA4 filter_interaction event
      if ($("body").hasClass("page-with-filter")) {
        if ($("div").hasClass("filter-options-item")) {
          $(document).on("click", ".filter-options-item", function () {
              var titleText = $(".filter-options-title", this).text();
              window.titleTextVar = titleText;
          });
          $(document).on("click", "a", function () {
                var aHref = $(this).attr('href');
                var valueText = $(this).text();
                if (aHref !== undefined){
                  valueText = valueText.trimStart();
                  valueText = valueText.trimEnd();
                  if (window.titleTextVar !== undefined){
                      var titleTextVar2 = window.titleTextVar;
                      titleTextVar2 = titleTextVar2.trimStart();
                      titleTextVar2 = titleTextVar2.trimEnd();
                      dataLayer.push({
                        'event': 'filter_interaction',
                        'menu_item': {
                                      'name': titleTextVar2,
                                      'value': valueText
                                 },
                      });
                   }
                }
          });
        }
      }


      /*----------------------
      ---------BREAK ---------
      -----------------------*/

      //*GA4 begin_checkout event
      if ($("body").hasClass("checkout-klarna-index")) {
              var checkoutTotal = 0;
              var rTotal = 0;
              let itemArr = [];
              let gaArr =  [];
              itemArr = AEC.Checkout.data['ecommerce']['checkout']['products'];
              // expand to have the correct amount or rows
              for (i = 0; i < itemArr.length; i++) {
                gaArr.push( {} );
              }
              for (i = 0; i < itemArr.length; i++) {
                gaArr[i]['item_id'] = itemArr[i]['id'];
                gaArr[i]['item_name'] = itemArr[i]['name'];
                gaArr[i]['price'] = itemArr[i]['price'];
                gaArr[i]['quantity'] = itemArr[i]['quantity'];
                gaArr[i]['item_brand'] = itemArr[i]['brand'];
                gaArr[i]['index'] = i;
                gaArr[i]['item_category'] = itemArr[i]['category'];
                var rTotal = itemArr[i]['price'] * itemArr[i]['quantity'];
                var checkoutTotal = checkoutTotal + rTotal;
              };
              dataLayer.push({
                'event': 'begin_checkout',
                'ecommerce': {
                  'currency': AEC.Checkout.data['ecommerce']['currency'],
                  'value': checkoutTotal,
                  'coupon': AEC.Checkout.data['ecommerce']['coupon'],
                  'items': gaArr
                  },
                });
        }

        /*----------------------
        ---------BREAK ---------
        -----------------------*/

        // GA4 search event
        if ($("body").hasClass("search-index-index")) {
              var urlParams = new URLSearchParams(window.location.search);
              var searchTerm = urlParams.get('q');
              dataLayer.push({
                'event': 'search',
                'search_term': searchTerm,
              });

          }

          /*----------------------
          ---------BREAK ---------
          -----------------------*/

           // GA4 minicart add / remove event
            $(document).on("click", ".qty-click-event", function () {
                var cartItemId = $(this).attr('data-cart-item');
                var cartItemSku = $('#cart-item-'+cartItemId+'-qty').attr('data-cart-item-id');
                var cartDirection = $(this).attr('direction');
                var parentLi = $(this).closest("li");
                var cartItemPrice = $(parentLi).find(".price").text();
                cartItemPrice = cartItemPrice.replace("£", "");
                var cartItemName = $(parentLi).find(".product-item-name a").text();
                if (cartDirection == 'add') {
                  dataLayer.push({
                    'event': 'add_to_cart',
                    'ecommerce': {
                      'currency': 'GBP',
                      'add_to_cart_type': 'MINI_CART',
                      'value': cartItemPrice,
                      'items_fix': [{
                                'item_id': cartItemSku,
                                'item_name': cartItemName,
                                'currency':"GBP",
                                'item_brand': AEC.storeName,
                                'price': cartItemPrice,
                                'quantity': 1
                              }],
                      },
                    });
                }
                if (cartDirection == 'subtract') {
                  dataLayer.push({
                    'event': 'remove_from_cart',
                    'ecommerce': {
                      'currency': 'GBP',
                      'add_to_cart_type': 'MINI_CART',
                      'value': cartItemPrice,
                      'items_fix': [{
                                'item_id': cartItemSku,
                                'item_name': cartItemName,
                                'currency': 'GBP',
                                'item_brand': AEC.storeName,
                                'price': cartItemPrice,
                                'quantity': 1
                               }],
                      },
                    });
                }
            });

        /*----------------------
        ---------BREAK ---------
        -----------------------*/

        // GA4 cart add / remove event
        if ($("body").hasClass("checkout-cart-index")) {
              $(document).on("click", ".minus", function () {
                  var parentLi = $(this).closest("li");
                  var cartItemPrice = $(parentLi).find(".action-delete").attr('data-price');
                  cartItemPrice = (Math.round(cartItemPrice*100)/100).toFixed(2);
                  var cartItemSku = $(parentLi).find(".action-delete").attr('data-id');
                  var cartItemName = $(parentLi).find(".product-item-name a").text();
                  dataLayer.push({
                    'event': 'remove_from_cart',
                    'ecommerce': {
                      'currency': 'GBP',
                      'add_to_cart_type': 'FULL_CART',
                      'value': cartItemPrice,
                      'items_fix': [{
                                'item_id': cartItemSku,
                                'item_name': cartItemName,
                                'currency': 'GBP',
                                'item_brand': AEC.storeName,
                                'price': cartItemPrice,
                                'quantity': 1
                              }],
                      },
                    });
               });
               $(document).on("click", ".plus", function () {
                 var parentLi = $(this).closest("li");
                 var cartItemSku = $(parentLi).find(".action-delete").attr('data-id');
                 var cartItemPrice = $(parentLi).find(".action-delete").attr('data-price');
                 cartItemPrice = (Math.round(cartItemPrice*100)/100).toFixed(2);
                 var cartItemName = $(parentLi).find(".product-item-name a").text();
                 dataLayer.push({
                   'event': 'add_to_cart',
                   'ecommerce': {
                     'currency': 'GBP',
                     'add_to_cart_type': 'FULL_CART',
                     'value': cartItemPrice,
                     'items_fix': [{
                               'item_id': cartItemSku,
                               'item_name': cartItemName,
                               'currency':"GBP",
                               'item_brand': AEC.storeName,
                               'price': cartItemPrice,
                               'quantity': 1
                             }],
                     },
                   });
              });
          }

          /*----------------------
          ---------BREAK ---------
          -----------------------*/


          // GA4 shipping options event
          if ($("body").hasClass("checkout-klarna-index")) {

            $("#klarna-fullscreen-iframe").ready(function (){
              setTimeout(

                        function() {
                          dataLayer.push({
                            'event': 'add_payment_info',
                            'ecommerce': {
                              'payment_type': "Pay With Klarna"
                               },
                            });

                        }, 6000);
            });


          }


 //console.log(pathname);

});
</script>
</div>

<script type="text/x-magento-init">
    {"*":{"Amasty_PromoBanners\/js\/loader":{"sections":[],"content":[],"injectorParams":{"containerSelector":".products-grid .product-items:not(.amasty-banner-items)","itemSelector":".products-grid .product-items:not(.amasty-banner-items) .product-item","banners":[]},"banners":[],"injectorSectionId":14}}}</script>
</div>    <script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.eu01.nr-data.net","licenseKey":"NRJS-19c7d7bca3f35248723","applicationID":"376947993","transactionName":"MhBSZQoZVxVXURUPXwtacVIMEVYIGVEMFR8MG1RUAFdQCFJXGQ==","queueTime":0,"applicationTime":732,"atts":"HldRE0IDRBs=","errorBeacon":"bam.eu01.nr-data.net","agent":""}</script></body>
</html>
                               

Whois info of domain

Domain Name: KBPRO.COM
Registry Domain ID: 3341722_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.tucows.com
Registrar URL: http://www.tucows.com
Updated Date: 2024-08-08T04:00:37Z
Creation Date: 1998-09-08T04:00:00Z
Registry Expiry Date: 2025-09-07T04:00:00Z
Registrar: Tucows Domains Inc.
Registrar IANA ID: 69
Registrar Abuse Contact Email: [email protected]
Registrar Abuse Contact Phone: +1.4165350123
Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
Domain Status: clientUpdateProhibited https://icann.org/epp#clientUpdateProhibited
Name Server: IGOR.NS.CLOUDFLARE.COM
Name Server: JANET.NS.CLOUDFLARE.COM
DNSSEC: unsigned
URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/
>>> Last update of whois database: 2025-05-06T14:14:16Z <<<
For more information on Whois status codes, please visit https://icann.org/epp
NOTICE: The expiration date displayed in this record is the date the
TERMS OF USE: You are not authorized to access or query our Whois
by the following terms of use: You agree that you may use this Data only
to: (1) allow, enable, or otherwise support the transmission of mass