.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.