4.9 på Trustpilot

Fri frakt over kr. 2500,- | Gjelder varer under 60 cm.

Lynrask levering

Vi lever i en verden med raske omstillinger. Egenskaper og produktfordeler vi ikke engang kunne drømme om for bare noen tiår siden, tar vi for gitt i dag. Alle våre produkter er nøye utvalgt med de strengeste krav til sikkerhet, pålitelighet og med miljø for øyet.

Varen er lagt i handlekurven.
22 items - 30621,60
(function(){ /* ========================= HELPERS ========================= */ function hasMeaningfulContent(panel){ var html = (panel.innerHTML || "") .replace(//g,"") .trim(); if(!html) return false; var text = panel.textContent.replace(/\s+/g," ").trim(); var hasMedia = panel.querySelector("img,iframe,video,table,ul,ol,a"); return !!(text.length > 0 || hasMedia); } function smoothScrollToHash(hash){ try{ var el = document.querySelector(hash); if(!el) return; el.scrollIntoView({behavior:"smooth",block:"start"}); history.replaceState(null,"",hash); }catch(e){} } /* ========================= STAR RATING IN HEADER ========================= */ function fillAccordionRating(root){ var target = root.querySelector('[data-pd-acc-rating]'); if(!target) return; var productRating = document.querySelector('.woocommerce-product-rating'); var star = productRating ? productRating.querySelector('.star-rating') : null; var link = productRating ? productRating.querySelector('a.woocommerce-review-link') : null; if(!star){ var reviews = document.querySelector('#reviews'); if(reviews) star = reviews.querySelector('.star-rating'); } if(!star) return; target.innerHTML = ''; var starClone = star.cloneNode(true); target.appendChild(starClone); var aria = star.getAttribute('aria-label') || ''; var match = aria.match(/([0-9]+([.,][0-9]+)?)/); var rating = match ? match[1].replace(',', '.') : ''; var count = ''; if(link){ var t = (link.textContent || '').trim(); var m = t.match(/(\d+)/); if(m) count = m[1]; } var metaText = ''; if(rating){ metaText = rating + ' / 5'; if(count) metaText += ' (' + count + ')'; } if(metaText){ var s = document.createElement('span'); s.className = 'pd-acc-rating-text'; s.textContent = metaText; target.appendChild(s); } target.addEventListener('click', function(e){ e.preventDefault(); var btn = document.getElementById('btn-rating'); var panel = document.getElementById('acc-rating'); if(btn && panel){ btn.setAttribute('aria-expanded','true'); btn.classList.add('is-open'); panel.classList.add('is-open'); } smoothScrollToHash("#reviews"); }); } /* ========================= MAIN INIT ========================= */ document.querySelectorAll('[data-pd-acc]').forEach(function(root){ /* Hide empty sections */ root.querySelectorAll('.pd-acc-item').forEach(function(item){ var panel = item.querySelector('.pd-acc-panel'); var btn = item.querySelector('.pd-acc-btn'); var isReviews = item.querySelector('[data-pd-reviews-slot]'); if(panel && btn && !isReviews && !hasMeaningfulContent(panel)){ item.style.display = 'none'; } }); /* OPTIONAL: Move WooCommerce reviews into panel */ var MOVE_WC_REVIEWS_INTO_PANEL = true; if(MOVE_WC_REVIEWS_INTO_PANEL){ var reviews = document.querySelector('#reviews'); var slot = root.querySelector('[data-pd-reviews-slot]'); if(reviews && slot){ slot.appendChild(reviews); } } /* Fill rating in header */ fillAccordionRating(root); /* Accordion click */ root.addEventListener('click', function(e){ var btn = e.target.closest('.pd-acc-btn'); if(!btn || !root.contains(btn)) return; var id = btn.getAttribute('aria-controls'); var panel = id ? document.getElementById(id) : null; if(!panel) return; var isOpen = btn.getAttribute('aria-expanded') === 'true'; /* Only one open at a time */ root.querySelectorAll('.pd-acc-btn[aria-expanded="true"]').forEach(function(b){ if(b === btn) return; var pid = b.getAttribute('aria-controls'); var p = pid ? document.getElementById(pid) : null; b.setAttribute('aria-expanded','false'); b.classList.remove('is-open'); if(p) p.classList.remove('is-open'); }); btn.setAttribute('aria-expanded', String(!isOpen)); btn.classList.toggle('is-open', !isOpen); panel.classList.toggle('is-open', !isOpen); }); }); })();