.page-id-53178 .sj-shopping-locator-shell { background: transparent !important; border: 0 !important; border-radius: 0 !important; padding: 0 !important; } .page-id-53178 .sj-shop-toolbar { margin: 0 0 16px; padding: 16px; background: linear-gradient(145deg, #f6efe8 0%, #fbf8f4 100%); border: 1px solid #e4d7cc; border-radius: 24px 11px 24px 11px; box-shadow: 0 10px 26px rgba(78,61,48,.055); } .page-id-53178 .sj-shop-toolbar-main, .page-id-53178 .sj-shop-quickfilters { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; } .page-id-53178 .sj-shop-toolbar-main { margin-bottom: 12px; } .page-id-53178 .sj-shop-toggle, .page-id-53178 .sj-shop-quickfilter, .page-id-53178 .sj-shop-more { appearance: none; border: 1px solid #d5c4b6; background: #fffdf9; color: #5d4436; font: inherit; font-weight: 700; line-height: 1.2; cursor: pointer; transition: transform .16s ease, box-shadow .16s ease, background .16s ease, border-color .16s ease, color .16s ease; } .page-id-53178 .sj-shop-toggle { min-height: 42px; padding: 10px 15px; border-radius: 14px 7px 14px 7px; } .page-id-53178 .sj-shop-toggle:nth-child(even) { border-radius: 8px 15px 8px 15px; } .page-id-53178 .sj-shop-toggle:hover, .page-id-53178 .sj-shop-quickfilter:hover, .page-id-53178 .sj-shop-more:hover { transform: translateY(-1px); border-color: #b98e74; box-shadow: 0 7px 16px rgba(78,61,48,.07); } .page-id-53178 .sj-shop-toggle.is-active, .page-id-53178 .sj-shop-quickfilter.is-active { background: #7d5a48; border-color: #7d5a48; color: #fffdf9; } .page-id-53178 .sj-shop-quickfilters { padding-top: 11px; border-top: 1px solid rgba(205,191,179,.55); } .page-id-53178 .sj-shop-quickfilters-label { margin-right: 2px; font-size: .76rem; font-weight: 800; letter-spacing: .045em; text-transform: uppercase; color: #87776c; } .page-id-53178 .sj-shop-quickfilter { min-height: 34px; padding: 7px 11px; border-radius: 999px; font-size: .78rem; } .page-id-53178 #wpsl-wrap { position: relative; margin: 0; } .page-id-53178 #wpsl-wrap .wpsl-search { margin: 0 0 16px !important; padding: 16px !important; background: #fffdf9 !important; border: 1px solid #e4d7cc; border-radius: 20px 9px 20px 9px; box-shadow: 0 8px 20px rgba(78,61,48,.045); } .page-id-53178 #wpsl-wrap:not(.sj-search-open) .wpsl-search { position: absolute !important; left: -10000px !important; top: 0 !important; width: 100% !important; visibility: hidden !important; pointer-events: none !important; } .page-id-53178 #wpsl-wrap.sj-search-open .wpsl-search { position: relative !important; left: auto !important; top: auto !important; width: 100% !important; visibility: visible !important; pointer-events: auto !important; } .page-id-53178 #wpsl-search-wrap form { display: flex !important; flex-wrap: wrap; align-items: end; gap: 10px 12px; margin: 0 !important; } .page-id-53178 #wpsl-search-wrap .wpsl-input, .page-id-53178 #wpsl-search-wrap .wpsl-select-wrap, .page-id-53178 #wpsl-search-wrap .wpsl-search-btn-wrap { float: none !important; width: auto !important; margin: 0 !important; } .page-id-53178 #wpsl-search-wrap .wpsl-input { flex: 1 1 320px; min-width: 220px; } .page-id-53178 #wpsl-search-wrap .wpsl-select-wrap { flex: 0 1 auto; display: flex !important; gap: 10px; align-items: end; } .page-id-53178 #wpsl-search-wrap label { display: block; margin: 0 0 5px !important; font-size: .74rem !important; font-weight: 800; letter-spacing: .035em; text-transform: uppercase; color: #776a61; } .page-id-53178 #wpsl-search-input, .page-id-53178 #wpsl-radius-dropdown { min-height: 42px !important; border: 1px solid #d9cbc0 !important; border-radius: 12px 6px 12px 6px !important; background: #fff !important; color: #302b27 !important; box-shadow: none !important; } .page-id-53178 #wpsl-search-input { width: 100% !important; padding: 9px 12px !important; } .page-id-53178 #wpsl-search-btn { min-height: 42px !important; margin: 0 !important; padding: 9px 16px !important; border: 1px solid #7d5a48 !important; border-radius: 12px 6px 12px 6px !important; background: #7d5a48 !important; color: #fffdf9 !important; font-weight: 800 !important; box-shadow: none !important; } .page-id-53178 #wpsl-search-btn:hover { background: #684938 !important; border-color: #684938 !important; } .page-id-53178 #wpsl-checkbox-filter { display: none !important; flex: 1 0 100%; width: 100% !important; margin: 6px 0 2px !important; padding: 14px !important; list-style: none !important; background: #f8f3ed; border: 1px solid #e6dbd1; border-radius: 16px 8px 16px 8px; } .page-id-53178 #wpsl-wrap.sj-filters-open #wpsl-checkbox-filter { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px 18px; } .page-id-53178 #wpsl-checkbox-filter li { float: none !important; width: auto !important; margin: 0 !important; padding: 0 !important; } .page-id-53178 #wpsl-checkbox-filter label { display: flex !important; align-items: center; gap: 7px; margin: 0 !important; padding: 6px 7px; border-radius: 8px; font-size: .82rem !important; font-weight: 600; line-height: 1.25; text-transform: none; letter-spacing: 0; cursor: pointer; } .page-id-53178 #wpsl-checkbox-filter label:hover { background: rgba(169,108,74,.07); } .page-id-53178 #wpsl-checkbox-filter input { margin: 0 !important; } .page-id-53178 #wpsl-wrap:not(.sj-map-open) #wpsl-map { position: absolute !important; left: -10000px !important; top: 0 !important; width: 100% !important; height: 440px !important; visibility: hidden !important; pointer-events: none !important; } .page-id-53178 #wpsl-wrap:not(.sj-map-open) .wpsl-skip-to-results { display: none !important; } .page-id-53178 #wpsl-wrap.sj-map-open #wpsl-map { position: relative !important; left: auto !important; top: auto !important; float: none !important; clear: both !important; width: 100% !important; height: 440px !important; margin: 0 0 18px !important; visibility: visible !important; border-radius: 20px 9px 20px 9px; overflow: hidden; box-shadow: 0 10px 26px rgba(78,61,48,.07); } .page-id-53178 #wpsl-result-list, .page-id-53178 #wpsl-stores { width: 100% !important; height: auto !important; max-height: none !important; overflow: visible !important; } .page-id-53178 #wpsl-result-list { float: none !important; margin: 0 !important; } .page-id-53178 #wpsl-stores > ul { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 14px !important; width: 100% !important; margin: 0 !important; padding: 0 !important; list-style: none !important; } .page-id-53178 #wpsl-stores > ul > li { position: relative; float: none !important; width: auto !important; min-width: 0; min-height: 132px; margin: 0 !important; padding: 19px 19px 42px !important; overflow: hidden; background: linear-gradient(145deg, rgba(255,253,249,.99), rgba(247,239,231,.95)); border: 1px solid rgba(205,191,179,.65) !important; border-radius: 23px 10px 23px 10px; box-shadow: 0 9px 22px rgba(78,61,48,.05); transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease; } .page-id-53178 #wpsl-stores > ul > li:nth-child(even) { border-radius: 11px 23px 11px 23px; } .page-id-53178 #wpsl-stores > ul > li::before { content: „“; position: absolute; right: -22px; top: -24px; width: 84px; height: 84px; border-radius: 50%; background: rgba(169,108,74,.055); pointer-events: none; } .page-id-53178 #wpsl-stores > ul > li::after { content: „Details →“; position: absolute; left: 19px; bottom: 16px; font-size: .69rem; font-weight: 800; letter-spacing: .055em; text-transform: uppercase; color: #a96c4a; pointer-events: none; } .page-id-53178 #wpsl-stores > ul > li:hover { transform: translateY(-3px); background: #fffdf9; border-color: rgba(169,108,74,.48) !important; box-shadow: 0 15px 30px rgba(78,61,48,.09); } .page-id-53178 #wpsl-stores > ul > li:focus-within { outline: 3px solid rgba(169,108,74,.42); outline-offset: 2px; } .page-id-53178 #wpsl-stores .wpsl-store-location, .page-id-53178 #wpsl-stores .wpsl-store-location > p, .page-id-53178 #wpsl-stores .wpsl-location-content { display: block !important; margin: 0 !important; padding: 0 !important; } .page-id-53178 #wpsl-stores .wpsl-icon-address::before { display: none !important; } .page-id-53178 #wpsl-stores .wpsl-location-name { display: block; margin: 0 0 11px !important; font-family: Georgia, „Times New Roman“, serif; font-size: 1.18rem !important; font-weight: 500 !important; line-height: 1.14 !important; } .page-id-53178 #wpsl-stores .wpsl-location-name a { color: #77452f !important; text-decoration: none !important; } .page-id-53178 #wpsl-stores .wpsl-location-name a::after { content: „“; position: absolute; z-index: 4; inset: 0; } .page-id-53178 #wpsl-stores .wpsl-street, .page-id-53178 #wpsl-stores .wpsl-location-content > span:not(.wpsl-location-name) { display: block; margin: 0; font-size: .82rem !important; line-height: 1.45; color: #6e655d; } .page-id-53178 #wpsl-stores .wpsl-direction-wrap, .page-id-53178 #wpsl-stores .wpsl-cta-section, .page-id-53178 #wpsl-stores .wpsl-contact-details, .page-id-53178 #wpsl-stores .wpsl-icon-hours, .page-id-53178 #wpsl-stores .wpsl-location-status { display: none !important; } .page-id-53178 .wpsl-number-results { margin: 0 0 14px !important; font-family: Georgia, „Times New Roman“, serif; font-size: 1.02rem !important; font-weight: 500 !important; color: #5d4436; } .page-id-53178 .sj-store-hidden { display: none !important; } .page-id-53178 .sj-shop-more-wrap { display: flex; justify-content: center; margin: 20px 0 4px; } .page-id-53178 .sj-shop-more { min-height: 42px; padding: 10px 18px; border-radius: 14px 7px 14px 7px; } @media (max-width: 980px) { .page-id-53178 #wpsl-stores > ul { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } .page-id-53178 #wpsl-wrap.sj-filters-open #wpsl-checkbox-filter { grid-template-columns: repeat(2, minmax(0, 1fr)); } } @media (max-width: 640px) { .page-id-53178 .sj-shop-toolbar { padding: 13px; border-radius: 19px 9px 19px 9px; } .page-id-53178 .sj-shop-toolbar-main { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; } .page-id-53178 .sj-shop-toolbar-main .sj-shop-toggle:first-child { grid-column: 1 / -1; } .page-id-53178 .sj-shop-toggle { width: 100%; padding-inline: 10px; font-size: .86rem; } .page-id-53178 .sj-shop-quickfilters { gap: 7px; } .page-id-53178 .sj-shop-quickfilters-label { flex-basis: 100%; } .page-id-53178 #wpsl-wrap .wpsl-search { padding: 13px !important; } .page-id-53178 #wpsl-search-wrap form { display: grid !important; grid-template-columns: 1fr; align-items: stretch; } .page-id-53178 #wpsl-search-wrap .wpsl-input, .page-id-53178 #wpsl-search-wrap .wpsl-select-wrap, .page-id-53178 #wpsl-search-wrap .wpsl-search-btn-wrap { width: 100% !important; } .page-id-53178 #wpsl-search-wrap .wpsl-select-wrap { display: grid !important; grid-template-columns: 1fr; } .page-id-53178 #wpsl-radius, .page-id-53178 #wpsl-radius-dropdown, .page-id-53178 #wpsl-search-btn { width: 100% !important; } .page-id-53178 #wpsl-wrap.sj-filters-open #wpsl-checkbox-filter { grid-template-columns: 1fr; gap: 4px; } .page-id-53178 #wpsl-wrap.sj-map-open #wpsl-map { height: 330px !important; border-radius: 16px 8px 16px 8px; } .page-id-53178 #wpsl-stores > ul { grid-template-columns: 1fr !important; gap: 10px !important; } .page-id-53178 #wpsl-stores > ul > li { min-height: 112px; padding: 16px 16px 39px !important; border-radius: 19px 9px 19px 9px; } .page-id-53178 #wpsl-stores > ul > li:nth-child(even) { border-radius: 10px 19px 10px 19px; } .page-id-53178 #wpsl-stores > ul > li::after { left: 16px; bottom: 14px; } .page-id-53178 #wpsl-stores .wpsl-location-name { font-size: 1.1rem !important; } } @media (prefers-reduced-motion: reduce) { .page-id-53178 .sj-shop-toggle, .page-id-53178 .sj-shop-quickfilter, .page-id-53178 .sj-shop-more, .page-id-53178 #wpsl-stores > ul > li { transition: none; } .page-id-53178 .sj-shop-toggle:hover, .page-id-53178 .sj-shop-quickfilter:hover, .page-id-53178 .sj-shop-more:hover, .page-id-53178 #wpsl-stores > ul > li:hover { transform: none; } } (function () { ‚use strict‘; var PAGE_SIZE = 24; var visibleStores = PAGE_SIZE; var listObserver = null; var listDebounce = null; var replacements = [ [/bTemporarily closedb/gi, ‚Vorübergehend geschlossen‘], [/bPermanently closedb/gi, ‚Dauerhaft geschlossen‘], [/bOpen nowb/gi, ‚Jetzt geöffnet‘], [/bClosed nowb/gi, ‚Jetzt geschlossen‘], [/bOpening soonb/gi, ‚Öffnet gleich‘], [/bClosing soonb/gi, ‚Schließt gleich‘], [/bReopensb/gi, ‚Öffnet wieder‘], [/bOpensb/gi, ‚Öffnet‘], [/bClosesb/gi, ‚Schließt‘], [/bOpenb/gi, ‚Geöffnet‘], [/bClosedb/gi, ‚Geschlossen‘], [/bTodayb/gi, ‚Heute‘], [/bTomorrowb/gi, ‚Morgen‘], [/bMondayb/gi, ‚Montag‘], [/bTuesdayb/gi, ‚Dienstag‘], [/bWednesdayb/gi, ‚Mittwoch‘], [/bThursdayb/gi, ‚Donnerstag‘], [/bFridayb/gi, ‚Freitag‘], [/bSaturdayb/gi, ‚Samstag‘], [/bSundayb/gi, ‚Sonntag‘], [/bMonb/g, ‚Mo‘], [/bTueb/g, ‚Di‘], [/bWedb/g, ‚Mi‘], [/bThub/g, ‚Do‘], [/bFrib/g, ‚Fr‘], [/bSatb/g, ‚Sa‘], [/bSunb/g, ‚So‘], [/b1 minutesb/gi, ‚1 Minute‘], [/b1 minuteb/gi, ‚1 Minute‘], [/b([2-9]|[1-9][0-9]+) minutesb/gi, ‚$1 Minuten‘], [/b1 hoursb/gi, ‚1 Stunde‘], [/b1 hourb/gi, ‚1 Stunde‘], [/b([2-9]|[1-9][0-9]+) hoursb/gi, ‚$1 Stunden‘] ]; function normalize(value) { return (value || “).replace(/s+/g, ‚ ‚).trim().toLowerCase(); } function translateText(value) { var translated = value; replacements.forEach(function (entry) { translated = translated.replace(entry[0], entry[1]); }); return translated; } function translateLocator(root) { var wrap = document.getElementById(‚wpsl-wrap‘); if (!wrap) { return; } var scope = root || wrap; var walker = document.createTreeWalker(scope, NodeFilter.SHOW_TEXT); var nodes = []; var node; while ((node = walker.nextNode())) { if ( node.parentElement && node.parentElement.closest( ‚.wpsl-icon-hours, .wpsl-location-status, .wpsl-opening-hours-status, .wpsl-opening-hours‘ ) ) { nodes.push(node); } } nodes.forEach(function (textNode) { var translated = translateText(textNode.nodeValue); if (translated !== textNode.nodeValue) { textNode.nodeValue = translated; } }); } function getStoreList() { return document.querySelector(‚#wpsl-stores > ul‘); } function ensureMoreButton() { var stores = document.getElementById(‚wpsl-stores‘); if (!stores) { return null; } var wrap = stores.parentElement ? stores.parentElement.querySelector(‚.sj-shop-more-wrap‘) : null; if (!wrap) { wrap = document.createElement(‚div‘); wrap.className = ’sj-shop-more-wrap‘; var button = document.createElement(‚button‘); button.type = ‚button‘; button.className = ’sj-shop-more‘; button.textContent = ‚Weitere Geschäfte anzeigen‘; button.addEventListener(‚click‘, function () { visibleStores += PAGE_SIZE; applyStoreLimit(false); }); wrap.appendChild(button); stores.insertAdjacentElement(‚afterend‘, wrap); } return wrap; } function applyStoreLimit(reset) { var list = getStoreList(); if (!list) { return; } if (reset) { visibleStores = PAGE_SIZE; } var items = Array.prototype.slice.call(list.children).filter(function (item) { return item.tagName === ‚LI‘; }); items.forEach(function (item, index) { item.classList.toggle(’sj-store-hidden‘, index >= visibleStores); }); var moreWrap = ensureMoreButton(); if (moreWrap) { var remaining = Math.max(0, items.length – visibleStores); moreWrap.hidden = remaining === 0; var button = moreWrap.querySelector(‚.sj-shop-more‘); if (button && remaining > 0) { button.textContent = remaining > PAGE_SIZE ? ‚Weitere ‚ + PAGE_SIZE + ‚ Geschäfte anzeigen‘ : ‚Weitere ‚ + remaining + ‚ Geschäfte anzeigen‘; } } } function setToggleState(button, active) { button.classList.toggle(‚is-active‘, active); button.setAttribute(‚aria-expanded‘, active ? ‚true‘ : ‚false‘); } function setQuickFilterState(activeButton) { document.querySelectorAll(‚.sj-shop-quickfilter‘).forEach(function (button) { var active = button === activeButton; button.classList.toggle(‚is-active‘, active); button.setAttribute(‚aria-pressed‘, active ? ‚true‘ : ‚false‘); }); } function runCategorySearch(categoryLabel) { var checkboxes = document.querySelectorAll(‚#wpsl-checkbox-filter input[type=“checkbox“]‘); var wanted = normalize(categoryLabel); checkboxes.forEach(function (checkbox) { checkbox.checked = false; }); if (wanted) { checkboxes.forEach(function (checkbox) { var label = checkbox.closest(‚label‘); if (label && normalize(label.textContent) === wanted) { checkbox.checked = true; } }); } var input = document.getElementById(‚wpsl-search-input‘); if (input && !input.value.trim()) { input.value = ‚Kamen‘; } var searchButton = document.getElementById(‚wpsl-search-btn‘); if (searchButton) { searchButton.click(); } } function bindToolbar(wrap) { document.querySelectorAll(‚.sj-shop-toggle‘).forEach(function (button) { button.addEventListener(‚click‘, function () { var type = button.getAttribute(‚data-sj-toggle‘); if (type === ’search‘) { var next = !wrap.classList.contains(’sj-search-open‘); wrap.classList.toggle(’sj-search-open‘, next); if (!next) { wrap.classList.remove(’sj-filters-open‘); var filterButton = document.querySelector(‚.sj-shop-toggle[data-sj-toggle=“filters“]‘); if (filterButton) { setToggleState(filterButton, false); } } setToggleState(button, next); } if (type === ‚filters‘) { var filterNext = !wrap.classList.contains(’sj-filters-open‘); wrap.classList.toggle(’sj-search-open‘, true); wrap.classList.toggle(’sj-filters-open‘, filterNext); var searchToggle = document.querySelector(‚.sj-shop-toggle[data-sj-toggle=“search“]‘); if (searchToggle) { setToggleState(searchToggle, true); } setToggleState(button, filterNext); } if (type === ‚map‘) { var mapNext = !wrap.classList.contains(’sj-map-open‘); wrap.classList.toggle(’sj-map-open‘, mapNext); button.textContent = mapNext ? ‚Karte ausblenden‘ : ‚Karte anzeigen‘; setToggleState(button, mapNext); if (mapNext) { window.setTimeout(function () { window.dispatchEvent(new Event(‚resize‘)); if (window.jQuery) { window.jQuery(window).trigger(‚resize‘); } }, 120); } } }); }); document.querySelectorAll(‚.sj-shop-quickfilter‘).forEach(function (button) { button.addEventListener(‚click‘, function () { setQuickFilterState(button); runCategorySearch(button.getAttribute(‚data-sj-category‘) || “); }); }); } function observeResults() { var list = getStoreList(); if (!list) { return; } if (listObserver) { listObserver.disconnect(); } listObserver = new MutationObserver(function (mutations) { var hasChanges = mutations.some(function (mutation) { return mutation.type === ‚childList‘ && (mutation.addedNodes.length || mutation.removedNodes.length); }); if (!hasChanges) { return; } window.clearTimeout(listDebounce); listDebounce = window.setTimeout(function () { translateLocator(list); applyStoreLimit(true); }, 80); }); listObserver.observe(list, { childList: true }); } function init() { var wrap = document.getElementById(‚wpsl-wrap‘); if (!wrap) { return; } bindToolbar(wrap); translateLocator(wrap); applyStoreLimit(true); observeResults(); var generalObserver = new MutationObserver(function (mutations) { mutations.forEach(function (mutation) { mutation.addedNodes.forEach(function (addedNode) { if (addedNode.nodeType === 1 || addedNode.nodeType === 11) { translateLocator(addedNode); } }); }); }); generalObserver.observe(wrap, { childList: true, subtree: true }); } if (document.readyState === ‚loading‘) { document.addEventListener(‚DOMContentLoaded‘, init, { once: true }); } else { init(); } }());
Persönlich, lokal, besonders
Kamener Originale
Einige Geschäfte möchte ich nach und nach ausführlicher vorstellen – mit Geschichte, Menschen und den Dingen, die einen Laden besonders machen.