:root{--spx-gold:#B88846;--spx-gold-soft:#F2DA76;--spx-ink:#1F2020;--spx-muted:#6b7280;--spx-line:#e5e7eb;--spx-surface:#FAF8F5;--spx-radius:12px}
.spx-grid{display:grid;gap:24px;grid-template-columns:repeat(3,minmax(0,1fr))}
.spx-tile{background:#fff;border:1px solid var(--spx-line);border-radius:var(--spx-radius);overflow:hidden;transition:box-shadow .2s ease}
.spx-tile:hover{box-shadow:0 6px 22px rgba(31,32,32,.09)}
.spx-tile__link{display:block;color:inherit;text-decoration:none}
.spx-tile__cover{position:relative;aspect-ratio:16/10;background:var(--spx-surface)}
.spx-tile__cover img{width:100%;height:100%;object-fit:cover;display:block}
.spx-tier{position:absolute;top:12px;left:12px;padding:4px 10px;border-radius:999px;font-size:12px;letter-spacing:.02em;color:#fff;background:var(--spx-ink)}
.spx-tier--gold{background:var(--spx-gold)}
.spx-tier--silver{background:#8b8b88}
.spx-tier--bronze{background:#a2703f}
.spx-tile__body{padding:18px 20px 20px;position:relative}
.spx-tile__logo{position:absolute;top:-34px;right:20px;width:56px;height:56px;border-radius:50%;overflow:hidden;background:#fff;border:1px solid var(--spx-line);display:grid;place-items:center}
.spx-tile__logo img{width:100%;height:100%;object-fit:contain}
.spx-tile__title{margin:0 0 6px;font-size:1.15rem;line-height:1.3}
.spx-tile__address,.spx-tile__distance{margin:0 0 10px;color:var(--spx-muted);font-size:.9rem}
.spx-tile__distance{color:var(--spx-gold)}
.spx-tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.spx-tags li{font-size:.78rem;padding:3px 9px;border-radius:999px;background:var(--spx-surface);color:var(--spx-ink)}
.spx-empty{color:var(--spx-muted)}
.spx-pagination{margin-top:28px;display:flex;gap:8px;flex-wrap:wrap}
.spx-pagination .page-numbers{padding:7px 12px;border:1px solid var(--spx-line);border-radius:8px;text-decoration:none;color:var(--spx-ink)}
.spx-pagination .current{background:var(--spx-ink);color:#fff;border-color:var(--spx-ink)}
.spx-map{width:100%;border-radius:var(--spx-radius);overflow:hidden;z-index:0}
.spx-marker span{display:block;width:18px;height:18px;border-radius:50%;border:3px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.35)}
.spx-popup{display:grid;gap:5px;min-width:170px}
.spx-popup img{width:100%;height:96px;object-fit:cover;border-radius:8px}
.spx-popup span{color:var(--spx-muted);font-size:.85em}
.spx-filter{display:flex;flex-wrap:wrap;gap:14px;align-items:end;padding:18px;background:#fff;border:1px solid var(--spx-line);border-radius:var(--spx-radius)}
.spx-filter__field{display:grid;gap:5px;flex:1 1 150px}
.spx-filter__field--wide{flex:2 1 220px}
.spx-filter label{font-size:.82rem;color:var(--spx-muted)}
.spx-filter input,.spx-filter select{width:100%;padding:10px 12px;border:1px solid var(--spx-line);border-radius:8px;font:inherit;background:#fff}
.spx-btn{display:inline-block;padding:11px 22px;border:0;border-radius:8px;background:var(--spx-ink);color:#fff;text-decoration:none;font:inherit;cursor:pointer}
.spx-btn:hover,.spx-btn:focus{background:#000;color:#fff}
.spx-btn--contact{background:var(--spx-gold)}
.spx-btn--contact:hover{background:#a3763a}
.spx-hours-table{width:100%;border-collapse:collapse}
.spx-hours-table th{text-align:left;font-weight:500;padding:9px 0;border-bottom:1px solid var(--spx-line)}
.spx-hours-table td{text-align:right;padding:9px 0;border-bottom:1px solid var(--spx-line)}
.spx-hours-table tr.is-today th,.spx-hours-table tr.is-today td{font-weight:600;color:var(--spx-gold)}
.spx-closed{color:var(--spx-muted)}
.spx-gallery-grid{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}
.spx-gallery-grid img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;display:block}
.spx-joblist{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.spx-jobitem{border:1px solid var(--spx-line);border-radius:var(--spx-radius);background:#fff}
.spx-jobitem a{display:block;padding:18px 20px;color:inherit;text-decoration:none}
.spx-jobitem:hover{border-color:var(--spx-gold)}
.spx-jobitem__title{margin:0 0 5px;font-size:1.05rem}
.spx-jobitem__meta{margin:0;color:var(--spx-muted);font-size:.88rem}
.spx-jobblock{margin-top:28px}
.spx-jobblock__title{margin:0 0 10px;font-size:1.1rem}
.spx-joblist-items{margin:0;padding-left:1.15em}
.spx-joblist-items li{margin-bottom:5px}
@media(max-width:900px){.spx-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.spx-grid,.spx-gallery-grid{grid-template-columns:1fr}.spx-filter__field{flex:1 1 100%}}
.spx-tile--nocover .spx-tile__cover{background:var(--spx-gold)}
.spx-tile__cover{aspect-ratio:16/9}
.spx-tile__logo{position:absolute;left:50%;bottom:-28px;transform:translateX(-50%);width:60px;height:60px;border-radius:50%;overflow:hidden;background:#fff;border:1px solid var(--spx-line);display:grid;place-items:center;top:auto;right:auto}
.spx-tile__logo img{width:100%;height:100%;object-fit:contain;padding:5px}
.spx-tile__body{padding:40px 18px 18px;text-align:center}
.spx-tile__title{margin:0 0 6px;font-size:1.05rem}
.spx-tile__phone{margin:0 0 14px;color:var(--spx-muted);font-size:.88rem}
.spx-tile__foot{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid var(--spx-line);padding-top:12px;margin-top:4px}
.spx-tile__foot .spx-tags{margin:0}
.spx-tags__more{background:var(--spx-ink);color:#fff}
.spx-status{font-size:.78rem;padding:3px 10px;border-radius:999px;white-space:nowrap}
.spx-status--open{background:#e7f6ec;color:#1c6b3a}
.spx-status--closed{background:#fdecea;color:#a12b24}
.spx-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0;align-items:start}
@media(max-width:1024px){.spx-split{grid-template-columns:1fr}}
/* Kopfbereich: Konto */
.spx-account__login{display:inline-block;padding:11px 22px;border-radius:8px;background:var(--spx-ink);color:#fff;text-decoration:none;font-size:14px;font-weight:500}
.spx-account__login:hover{background:#000;color:#fff}
.spx-account{position:relative;display:inline-block}
.spx-account__toggle{display:flex;align-items:center;gap:9px;cursor:pointer;list-style:none;padding:6px 10px;border-radius:999px}
.spx-account__toggle::-webkit-details-marker{display:none}
.spx-account__toggle:hover{background:var(--spx-surface)}
.spx-account__avatar img{width:34px;height:34px;border-radius:50%;display:block;border:2px solid var(--spx-gold)}
.spx-account__name{font-size:14px;font-weight:500;color:var(--spx-ink);white-space:nowrap}
.spx-account__caret{width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid var(--spx-muted)}
.spx-account[open] .spx-account__caret{transform:rotate(180deg)}
.spx-account__menu{position:absolute;right:0;top:calc(100% + 8px);min-width:230px;background:#fff;border:1px solid var(--spx-line);border-radius:12px;box-shadow:0 12px 34px rgba(31,32,32,.14);padding:8px;display:grid;gap:2px;z-index:99}
.spx-account__menu a{display:block;padding:10px 14px;border-radius:8px;color:var(--spx-ink);text-decoration:none;font-size:14px}
.spx-account__menu a:hover{background:var(--spx-surface)}
.spx-account__logout{border-top:1px solid var(--spx-line);margin-top:6px;padding-top:12px!important;color:var(--spx-muted)!important}
/* Kopfleiste auf kleinen Bildschirmen */
@media (max-width: 880px){
  .spx-account__name{display:none}
  .spx-account__toggle{padding:3px;gap:0}
  .spx-account__avatar img{width:32px;height:32px}
  .spx-account__caret{display:none}
  .spx-account__login{padding:9px 14px;font-size:13px;white-space:nowrap}
  .spx-account__menu{position:fixed;left:12px;right:12px;top:auto;min-width:0;margin-top:6px}
}
@media (max-width: 880px){
  .elementor-nav-menu--dropdown{border-radius:0 0 12px 12px}
  .elementor-menu-toggle{padding:8px}
}
/* Kopfleiste mobil: Schriftzug einzeilig, Menü über die volle Breite */
@media (max-width: 880px){
  .elementor-location-header .elementor-widget-heading .elementor-heading-title{white-space:nowrap}
  .elementor-location-header .elementor-nav-menu--dropdown{
    left:auto;right:0;transform:none;
    width:min(300px, calc(100vw - 20px));
    border-radius:12px;box-shadow:0 14px 34px rgba(31,32,32,.18)}
  .elementor-location-header .elementor-nav-menu--dropdown a{font-size:16px}
}
@media (max-width: 420px){
  .elementor-location-header .elementor-widget-heading .elementor-heading-title{font-size:12px;letter-spacing:1.5px}
}
@media (max-width: 480px){
  .elementor-location-header .elementor-heading-title{font-size:11px!important;letter-spacing:1.4px!important}
  .spx-account__login{padding:8px 12px;font-size:12px}
  .spx-account__avatar img{width:30px;height:30px}
  .elementor-location-header .elementor-menu-toggle{padding:6px}
}
.elementor-location-header .e-con-inner,.elementor-location-header .e-con{overflow:visible}
/* Kopfleiste: Aufbau fest vorgeben, damit nichts herausläuft */
.elementor-location-header .e-con-inner,
.elementor-location-header > .e-con{
  display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;
  justify-content:space-between;gap:12px}
.elementor-location-header .elementor-widget-heading{flex:0 1 auto;min-width:0}
.elementor-location-header .elementor-widget-heading .elementor-heading-title{
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}
.elementor-location-header .elementor-widget-nav-menu,
.elementor-location-header .elementor-widget-spx-account{flex:0 0 auto;width:auto;max-width:none}
.elementor-location-header .elementor-widget-spx-account .elementor-widget-container{display:flex;justify-content:flex-end}
/* Das eingeklappte Menüfeld darf die Zeilenbreite nicht bestimmen */
.elementor-location-header .e-con-inner,
.elementor-location-header > .e-con{position:relative}
.elementor-location-header .elementor-widget-nav-menu{width:auto!important;max-width:none!important;position:static}
.elementor-location-header .elementor-widget-nav-menu > .elementor-widget-container{width:auto}
.elementor-location-header .elementor-nav-menu--dropdown{
  position:absolute!important;top:100%!important;right:0!important;left:auto!important;
  width:min(300px, calc(100vw - 24px))!important;transform:none!important;z-index:200}
.elementor-location-header .elementor-menu-toggle{position:relative;z-index:201}
/* Menüknopf und Konto auf gleicher Höhe und in gleicher Aufmachung */
.elementor-location-header .elementor-menu-toggle{
  width:40px;height:40px;padding:0;border-radius:999px;background:transparent;
  align-items:center;justify-content:center;color:var(--spx-ink)}
@media (max-width:1024px){
  .elementor-location-header .elementor-nav-menu--dropdown-tablet .elementor-menu-toggle,
  .elementor-location-header .elementor-nav-menu--dropdown-mobile .elementor-menu-toggle{display:flex}
}
.elementor-location-header .elementor-menu-toggle:hover,
.elementor-location-header .elementor-menu-toggle.elementor-active{background:var(--spx-surface)}
.elementor-location-header .elementor-menu-toggle i,
.elementor-location-header .elementor-menu-toggle svg{font-size:20px;width:20px;height:20px;fill:currentColor}
.spx-account__toggle{min-height:40px}
.elementor-location-header .elementor-widget-nav-menu > .elementor-widget-container,
.elementor-location-header .elementor-widget-spx-account > .elementor-widget-container{display:flex;align-items:center}

/* Aufklappfeld des Menüs wie das Kontomenü */
.elementor-location-header .elementor-nav-menu--dropdown{
  background:#fff!important;border:1px solid var(--spx-line);border-radius:12px!important;
  box-shadow:0 12px 34px rgba(31,32,32,.14);padding:8px;margin-top:8px;overflow:hidden}
.elementor-location-header .elementor-nav-menu--dropdown a.elementor-item{
  border-radius:8px;padding:11px 14px!important;font-size:15px;line-height:1.3;border:0!important}
.elementor-location-header .elementor-nav-menu--dropdown a.elementor-item:hover,
.elementor-location-header .elementor-nav-menu--dropdown a.elementor-item.elementor-item-active{
  background:var(--spx-surface);color:var(--spx-gold)}
.elementor-location-header .elementor-nav-menu--dropdown li{border:0}

/* Logo */
.elementor-location-header .elementor-widget-image img{display:block;height:auto}
/* Menüfeld ist geschlossen, bis es geöffnet wird */
.elementor-location-header .elementor-nav-menu--dropdown{display:none}
.elementor-location-header .elementor-menu-toggle.elementor-active + .elementor-nav-menu--dropdown{display:block}
.spx-popup .spx-popup__anzahl{color:var(--spx-gold);font-weight:600}
/* Öffnungszeiten-Tabelle ohne Theme-Rahmen */
.spx-hours-table{width:100%;border-collapse:collapse;border:0;margin:0;table-layout:auto}
.spx-hours-table tr{background:transparent!important;border:0}
.spx-hours-table th,.spx-hours-table td{border:0!important;background:transparent!important;
  padding:12px 0;vertical-align:baseline;font-size:.95rem;line-height:1.3}
.spx-hours-table th{text-align:left;font-weight:500;color:var(--spx-ink);white-space:nowrap;padding-right:12px}
.spx-hours-table td{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--spx-ink)}
.spx-hours-table tr + tr th,.spx-hours-table tr + tr td{border-top:1px solid var(--spx-line)!important}
.spx-hours-table tr.is-today th,.spx-hours-table tr.is-today td{font-weight:600;color:var(--spx-gold)}
.spx-hours-table tr.is-today th::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;
  background:var(--spx-gold);margin-right:8px;vertical-align:middle}
.spx-closed{color:var(--spx-muted);font-weight:400}
@media(max-width:420px){.spx-hours-table th,.spx-hours-table td{font-size:.88rem;padding:10px 0}}

/* Öffnungsstatus */
.spx-open{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border-radius:999px;
  font-size:.9rem;line-height:1.2;background:#e7f6ec;color:#1c6b3a}
.spx-open--nein{background:#fdecea;color:#a12b24}
.spx-open__dot{width:8px;height:8px;border-radius:50%;background:currentColor;flex:0 0 8px}
.spx-open__zusatz{opacity:.85;font-weight:400}
.spx-open--dunkel{background:rgba(255,255,255,.14);color:#EAF6EE}
.spx-open--dunkel.spx-open--nein{background:rgba(255,255,255,.12);color:#F6DCD9}
/* Zugehöriger Salon auf der Stellenanzeige */
.spx-salonkarte{display:flex;gap:14px;align-items:flex-start;text-decoration:none;color:inherit}
.spx-salonkarte__bild{width:60px;height:60px;flex:0 0 60px;border-radius:12px;overflow:hidden;
  background:var(--spx-surface);display:grid;place-items:center}
.spx-salonkarte__bild img{width:100%;height:100%;object-fit:contain;padding:5px}
.spx-salonkarte__initial{font-size:1.4rem;font-weight:600;color:var(--spx-gold)}
.spx-salonkarte__text{display:grid;gap:5px}
.spx-salonkarte__text strong{font-size:1.05rem;line-height:1.25}
.spx-salonkarte__adresse{color:var(--spx-muted);font-size:.88rem;line-height:1.4}
.spx-salonkarte__mehr{color:var(--spx-gold);font-size:.9rem;text-decoration:underline}
.spx-salonkarte:hover .spx-salonkarte__mehr{text-decoration:none}
.spx-open--klein{padding:4px 10px;font-size:.8rem;justify-self:start}
/* Leere Bausteine einklappen */
.spx-leer{display:none}
.e-con:has(> .e-con-inner > .elementor-widget > .elementor-widget-container > .spx-leer),
.e-child:has(> .elementor-widget > .elementor-widget-container > .spx-leer),
.e-child:has(.spx-leer){display:none}
/* Kontakt-Schaltflächen */
.spx-aktionen{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.spx-aktion{display:inline-flex;align-items:center;justify-content:center;padding:8px 16px;border-radius:7px;
  text-decoration:none;font-size:.85rem;font-weight:500;line-height:1.2;white-space:nowrap}
.spx-aktion--haupt{background:var(--spx-gold);color:#fff}
.spx-aktion--haupt:hover{background:#a3763a;color:#fff}
.spx-aktion--zweit{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.45)}
.spx-aktion--zweit:hover{background:rgba(255,255,255,.14);color:#fff}
.spx-aktionen--hell .spx-aktion--zweit{color:var(--spx-ink);border-color:var(--spx-line)}
.spx-aktionen--hell .spx-aktion--zweit:hover{background:var(--spx-surface);color:var(--spx-ink)}
@media(max-width:480px){.spx-aktionen{gap:7px}.spx-aktion{padding:8px 13px;font-size:.8rem}}
/* Kontaktkarte mit Logo */
.spx-kontaktlogo img{width:72px;height:72px;object-fit:contain;border-radius:12px;background:var(--spx-surface);padding:6px;display:block}
/* Schaltflächen über die volle Zeile */
.spx-aktionen--voll{width:100%;flex-wrap:nowrap}
.spx-aktionen--voll .spx-aktion{flex:1 1 0;min-width:0;padding-left:8px;padding-right:8px}
.elementor-widget-spx-aktionen{width:100%}
@media(max-width:420px){
  .spx-aktionen--voll .spx-aktion{font-size:.78rem;padding:9px 6px}
}
