Din webbläsare stöds ej. För bästa upplevelsen rekommenderas en nyare version eller en annan webbläsare.
Din sökning pågav inga träffar. Var vänlig försök med annat sökord.
Sökning måste bestå av minsttecken.
För nya kunder
För att kunna handla måste du vara registrerad kund hos oss. Detta gör du enklast genom att klicka på Registrering i mitten av Startsidan eller uppe till höger. Du måste ha ett registrerat företag inom frisörbranchen för att få tillgång till webshopen.
Fyll i alla uppgifterna, om du är "befintlig kund" är det viktigt att du kryssar i rutan för detta.
Efter du skickat in registreringen behandlas den och du kommer att få inloggningsuppgifter och lösenord via email. Du har sedan möjlighet att ändra ditt lösenord under Mitt konto om du vill.
Ditt lösenord och användarnamn behöver du sedan varje gång du skall logga in och handla.
document.addEventListener("DOMContentLoaded", function () {
/* =====================================================
TABS
===================================================== */
const tabs = document.querySelectorAll(".ns-tab");
const panels = document.querySelectorAll(".ns-panel");
if (tabs.length && panels.length) {
tabs.forEach(function (tab) {
tab.addEventListener("click", function () {
tabs.forEach(function (t) {
t.classList.remove("active");
});
panels.forEach(function (p) {
p.classList.remove("active");
});
this.classList.add("active");
const target = this.dataset.tab;
const panel = document.querySelector('.ns-panel[data-content="' + target + '"]');
if (panel) {
panel.classList.add("active");
}
});
});
}
/* =====================================================
FAQ ACCORDION
===================================================== */
const faqItems = document.querySelectorAll(".ns-faq-item");
if (faqItems.length) {
faqItems.forEach(function (item) {
const button = item.querySelector(".ns-faq-question");
if (!button) return;
button.addEventListener("click", function () {
faqItems.forEach(function (other) {
if (other !== item) {
other.classList.remove("active");
}
});
item.classList.toggle("active");
});
});
}
/* =====================================================
GENERIC IMAGE SLIDERS (2 mobile / 3 desktop)
===================================================== */
const sliders = document.querySelectorAll("[data-slider]");
sliders.forEach(function (slider) {
const track = slider.querySelector(".slider-track");
const slides = slider.querySelectorAll(".slide");
const prev = slider.querySelector(".slider-btn.prev");
const next = slider.querySelector(".slider-btn.next");
if (!track || !slides.length || !prev || !next) return;
let index = 0;
function updateSlider() {
const slideWidth = slides[0].offsetWidth;
const gap = parseInt(getComputedStyle(track).gap, 10) || 0;
const step = slideWidth + gap;
const visible = window.innerWidth >= 1024 ? 3 : 2;
const maxIndex = Math.max(0, slides.length - visible);
index = Math.max(0, Math.min(index, maxIndex));
track.style.transform = "translateX(-" + (index * step) + "px)";
prev.disabled = index === 0;
next.disabled = index >= maxIndex;
}
prev.addEventListener("click", function () {
index--;
updateSlider();
});
next.addEventListener("click", function () {
index++;
updateSlider();
});
window.addEventListener("resize", updateSlider);
updateSlider();
});
/* =====================================================
INSPIRATION SLIDER (2 mobile / 4 desktop)
===================================================== */
const inspiration = document.querySelector(".inspiration-slider");
if (inspiration) {
const track = inspiration.querySelector(".slider-track");
const slides = inspiration.querySelectorAll(".slide");
const prev = inspiration.querySelector(".slider-arrow.prev");
const next = inspiration.querySelector(".slider-arrow.next");
if (track && slides.length && prev && next) {
let index = 0;
function updateInspiration() {
const slideWidth = slides[0].offsetWidth;
const gap = parseInt(getComputedStyle(track).gap, 10) || 0;
const step = slideWidth + gap;
const visible = window.innerWidth >= 1024 ? 4 : 2;
const maxIndex = Math.max(0, slides.length - visible);
index = Math.max(0, Math.min(index, maxIndex));
track.style.transform = "translateX(-" + (index * step) + "px)";
}
prev.addEventListener("click", function () {
index--;
updateInspiration();
});
next.addEventListener("click", function () {
index++;
updateInspiration();
});
window.addEventListener("resize", updateInspiration);
updateInspiration();
}
}
/* =====================================================
LOMBARD HERO SLIDER
===================================================== */
const lombardTrack = document.getElementById("lombard-slider-track");
const lombardSlides = lombardTrack ? lombardTrack.children : [];
const lombardPrev = document.querySelector(".lombard-slider-prev");
const lombardNext = document.querySelector(".lombard-slider-next");
if (lombardTrack && lombardSlides.length && lombardPrev && lombardNext) {
let lombardIndex = 0;
function updateLombardSlider() {
lombardTrack.style.transform = "translateX(-" + (lombardIndex * 100) + "%)";
}
lombardPrev.addEventListener("click", function () {
lombardIndex = (lombardIndex - 1 + lombardSlides.length) % lombardSlides.length;
updateLombardSlider();
});
lombardNext.addEventListener("click", function () {
lombardIndex = (lombardIndex + 1) % lombardSlides.length;
updateLombardSlider();
});
updateLombardSlider();
}
/* =====================================================
VIDEO AUTOPLAY FIX (mobile)
===================================================== */
const videos = document.querySelectorAll("video");
videos.forEach(function (video) {
video.setAttribute("muted", "");
video.setAttribute("playsinline", "");
video.setAttribute("webkit-playsinline", "");
const playPromise = video.play();
if (playPromise !== undefined) {
playPromise.catch(function () {});
}
});
/* =====================================================
SMOOTH SCROLL FOR HASH LINKS
===================================================== */
document.querySelectorAll('a[href^="#"]').forEach(function (anchor) {
anchor.addEventListener("click", function (e) {
const id = this.getAttribute("href");
if (!id || id === "#") return;
const target = document.querySelector(id);
if (!target) return;
e.preventDefault();
target.scrollIntoView({
behavior: "smooth",
block: "start"
});
});
});
/* =====================================================
PRODUCT USP CONTENT
===================================================== */
function findProductTitleElement() {
const selectors = [
".product-title h1",
".product-name h1",
".product-title",
".product-name",
"[class*='product-title'] h1",
"[class*='product-name'] h1",
"[class*='product-title']",
"[class*='product-name']",
"h1"
];
for (let i = 0; i < selectors.length; i++) {
const elements = document.querySelectorAll(selectors[i]);
for (let j = 0; j < elements.length; j++) {
const el = elements[j];
if (el && el.textContent && el.textContent.trim().length > 0) {
return el;
}
}
}
return null;
}
function findUSPSource() {
return document.querySelector(".product-usp-source");
}
function findUSPContent(sourceEl) {
if (!sourceEl) return null;
const content = sourceEl.querySelector(".product-usp-content");
if (content) return content;
const wrapper = document.createElement("div");
wrapper.className = "product-usp-content";
wrapper.innerHTML = sourceEl.innerHTML;
return wrapper;
}
function removeUnwantedLines(titleEl) {
if (!titleEl) return;
titleEl.style.borderBottom = "none";
titleEl.style.boxShadow = "none";
let current = titleEl.parentElement;
let steps = 0;
while (current && steps < 5) {
current.style.borderBottom = "none";
current.style.borderTop = "none";
current.style.boxShadow = "none";
steps++;
current = current.parentElement;
}
}
function insertUSPBelowTitle(titleEl, sourceEl) {
if (!titleEl || !sourceEl) return;
if (document.querySelector(".product-usp-content--moved")) return;
const content = findUSPContent(sourceEl);
if (!content) return;
const movedContent = content.cloneNode(true);
movedContent.classList.add("product-usp-content--moved");
titleEl.insertAdjacentElement("afterend", movedContent);
}
function initProductUSPContent() {
const titleEl = findProductTitleElement();
const sourceEl = findUSPSource();
if (!titleEl || !sourceEl) return;
insertUSPBelowTitle(titleEl, sourceEl);
removeUnwantedLines(titleEl);
}
initProductUSPContent();
});