Категории
Цепи
Браслеты
Кольца
Серьги
Колье
Подвески
Пирсинги
Для одежды
Сувениры
Выберите категорию
' + '
' + it.name + '
' + ''; }).join(''); } function findLink() { var all = document.querySelectorAll('a[href]'); for (var i = 0; i < all.length; i++) { if ((all[i].getAttribute('href') || '').indexOf(KEY) !== -1) return all[i]; } return null; } function setupDropdown(triggerLink) { ddEl.classList.add('jw-dd--ready'); document.body.appendChild(ddEl); var rightLabel = document.getElementById('jwRightLabel'); var rightGrid = document.getElementById('jwRightGrid'); var mobSub = document.getElementById('jwMobSub'); var activeDesktopCat = null; var activeMobCat = null; var isOpen = false; function isMob() { return window.innerWidth <= 600; } function posDD() { var r = triggerLink.getBoundingClientRect(); ddEl.style.top = Math.round(r.bottom + (isMob() ? 4 : 30)) + 'px'; } function show() { posDD(); ddEl.classList.add('jw-on'); isOpen = true; } function hide() { ddEl.classList.remove('jw-on'); isOpen = false; clearDesktopActive(); clearMobSub(); } /* ── Desktop: highlight active cat ── */ function clearDesktopActive() { var cats = ddEl.querySelectorAll('[data-jcat]'); for (var i = 0; i < cats.length; i++) cats[i].classList.remove('jw-cat--active'); activeDesktopCat = null; if (rightLabel) rightLabel.textContent = 'Выберите категорию'; if (rightGrid) rightGrid.innerHTML = ''; var right = document.getElementById('jwRight'); if (right) right.style.display = ''; } function showDesktopCat(id) { clearDesktopActive(); var cat = CATS[id]; if (!cat) return; var el = ddEl.querySelector('[data-jcat="' + id + '"]'); if (el) el.classList.add('jw-cat--active'); activeDesktopCat = id; if (rightLabel) rightLabel.textContent = cat.label; if (rightGrid) rightGrid.innerHTML = makeGrid(cat.items); var right = document.getElementById('jwRight'); if (right) right.style.display = 'block'; } /* ── Mobile: expand sub below cat ── */ function clearMobSub() { if (mobSub) { mobSub.className = 'jw-mob-sub'; mobSub.innerHTML = ''; } activeMobCat = null; } function toggleMobCat(id, afterEl) { if (activeMobCat === id) { clearMobSub(); return; } clearMobSub(); var cat = CATS[id]; if (!cat) return; activeMobCat = id; if (mobSub) { mobSub.innerHTML = '
' + makeGrid(cat.items) + '
'; mobSub.className = 'jw-mob-sub jw-mob-sub--open'; /* Insert after clicked element */ if (afterEl && afterEl.parentNode) { afterEl.parentNode.insertBefore(mobSub, afterEl.nextSibling); } } } function isInsideTrigger(target) { if (!triggerLink || !target) return false; var node = target; while (node && node !== document.documentElement) { if (node === triggerLink) return true; node = node.parentNode; } return false; } /* ── MOBILE: touchend capture ── */ document.addEventListener('touchend', function(e) { if (!isMob()) return; /* Tap on trigger → toggle dropdown */ if (isInsideTrigger(e.target)) { e.preventDefault(); e.stopPropagation(); if (isOpen) hide(); else show(); return; } /* Tap on sub-category cat item */ if (ddEl.contains(e.target)) { var catEl = e.target.closest('[data-jcat]'); if (catEl) { e.preventDefault(); e.stopPropagation(); toggleMobCat(catEl.getAttribute('data-jcat'), catEl); return; } /* Tap on direct link inside dropdown — let it navigate */ return; } /* Tap outside → close */ if (isOpen) hide(); }, { capture: true, passive: false }); /* ── DESKTOP: click prevent on trigger ── */ document.addEventListener('click', function(e) { if (isMob()) return; if (isInsideTrigger(e.target)) e.preventDefault(); }, true); /* ── DESKTOP: hover on trigger ── */ var hideTimer = null; function schedHide() { hideTimer = setTimeout(function() { hide(); }, 220); } function cancelHide() { clearTimeout(hideTimer); } triggerLink.addEventListener('mouseenter', function() { if (isMob()) return; cancelHide(); show(); }); triggerLink.addEventListener('mouseleave', function() { if (isMob()) return; schedHide(); }); ddEl.addEventListener('mouseenter', function() { if (isMob()) return; cancelHide(); }); ddEl.addEventListener('mouseleave', function() { if (isMob()) return; schedHide(); }); /* ── DESKTOP: hover on category items ── */ var catEls = ddEl.querySelectorAll('[data-jcat]'); for (var i = 0; i < catEls.length; i++) { catEls[i].addEventListener('mouseenter', (function(el) { return function() { if (!isMob()) showDesktopCat(el.getAttribute('data-jcat')); }; })(catEls[i])); /* Desktop click on cat (no sub-grid needed, handled by hover) */ catEls[i].addEventListener('click', function(e) { if (!isMob()) e.preventDefault(); }); } /* ── Escape ── */ document.addEventListener('keydown', function(e) { if (e.key === 'Escape') hide(); }); /* ── Scroll / Resize ── */ window.addEventListener('scroll', function() { if (isOpen) posDD(); }); window.addEventListener('resize', function() { if (isOpen) posDD(); }); } var link = findLink(); if (link) { setupDropdown(link); } else if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', function() { setTimeout(function() { var l = findLink(); if (l) setupDropdown(l); else ddEl.style.display = 'block'; }, 150); }); } else { setTimeout(function() { var l = findLink(); if (l) setupDropdown(l); else ddEl.style.display = 'block'; }, 150); } })();
Ювелирная мастерская — Баннер
• Ювелирная мастерская

Смотрите процесс своими глазами

Рождение шедевра — от металла до украшения

Каждое украшение создаётся вручную в нашей мастерской — от эскиза до финальной огранки

Наблюдайте за тем, как опытные мастера работают с драгоценными металлами и камнями. Производство полного цикла, контроль качества на каждом этапе, традиции ювелирного искусства.

Смотреть видео производства Технологический процесс · 3 мин
Смотреть каталог украшений
Ручная работа Каждое изделие уникально
Гарантия качества Сертификаты и пробы
Честная цена Напрямую от мастера
01 / 03

Замените этот блок на <iframe> вашего видео
(YouTube, Vimeo или локальный <video>)

Made on
Tilda