:root{--flieder:#e9eaed;--flieder-dark:#c7c9cf;--ok:#16a34a;--bad:#dc2626;--muted:#64748b}
.plett-container{max-width:1120px;margin:0 auto;padding:0 1rem}
.plett-title{font-size:clamp(1.6rem,2.2vw,2rem);font-weight:800;margin:.25rem 0}
.plett-sub{color:var(--muted);margin:0 0 1rem}
.badge{display:inline-block;padding:.28rem .55rem;border-radius:999px;font-size:.78rem;line-height:1;border:1px solid #e5e7eb}
.badge.open{background:#ecfdf5;color:#065f46;border-color:#a7f3d0}
.badge.closed{background:#fef2f2;color:#991b1b;border-color:#fecaca}

.plett-filters{display:flex;gap:.6rem;flex-wrap:wrap;margin:.75rem 0 1rem}
.plett-filters input,.plett-filters select{padding:.5rem .75rem;border:1px solid #ddd;border-radius:.6rem}
.plett-filters button{background:var(--flieder);color:#fff;border:0;padding:.6rem .9rem;border-radius:.6rem;cursor:pointer}

.plett-grid{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:1.25rem}
@media(min-width:640px){.plett-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:960px){.plett-grid{grid-template-columns:repeat(3,1fr)}}
.plett-card{display:block;background:#fff;border:1px solid #eee;border-radius:1.25rem;overflow:hidden;text-decoration:none;color:inherit;box-shadow:0 4px 10px rgba(0,0,0,.04)}
/* === PLETTeats: Kartenbild fix === */
.plett-card .thumb{
  aspect-ratio:16/9;   /* einheitliche Höhe mobil & desktop */
  overflow:hidden;     /* schneidet Bild an den runden Ecken */
  line-height:0;       /* entfernt den Inline-Gap (dunkler Balken) */
}
.plett-card .thumb img{
  display:block;       /* kein Inline-Gap */
  width:100%;
  height:100%;
  object-fit:cover;
}

.plett-card .body{padding:.85rem}
.plett-card h3{margin:0 0 .4rem;display:flex;gap:.5rem;align-items:center;font-size:1.05rem;font-weight:700}
.excerpt{color:var(--muted)}

.plett-oh{width:100%;border-collapse:collapse}
.plett-oh th,.plett-oh td{border-bottom:1px solid #eee;padding:.4rem .3rem;text-align:left}
.plett-oh th{width:25%;color:#0f172a}
.plett-oh td{color:#334155}

.plett-menu{margin:.5rem 0 1rem}
.menu-sec.acc{border:1px solid #e5e7eb;border-radius:.75rem;margin:.5rem 0;background:#fff}
.acc-head{display:flex;align-items:center;justify-content:space-between;width:100%;background:var(--flieder);border:0;padding:.75rem 1rem;font-weight:800;font-size:1.05rem;text-align:left;cursor:pointer}
.acc .chev{transition:transform .2s ease}
.acc.open .chev{transform:rotate(180deg)}
.acc .acc-body{display:none;padding:.25rem 1rem 1rem}
.acc.open .acc-body{display:block}

.menu-list{list-style:none;padding:0;margin:0}
.menu-item{padding:.6rem 0;border-bottom:1px solid #eee}
.menu-item:last-child{border-bottom:none}
.mi-line{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem}
.mi-name{font-weight:700}
.mi-price{white-space:nowrap;font-weight:700;background:var(--flieder);border:1px solid var(--flieder);padding:.15rem .5rem;border-radius:.5rem}
.mi-desc{color:var(--muted);font-size:.9rem;margin-top:.2rem}
.mi-icons.inline{margin-left:.4rem}
.mi-variants{list-style:none;padding:0;margin:.35rem 0 0}
.mi-variants li{display:flex;justify-content:space-between;gap:.75rem;padding:.25rem 0;border-bottom:1px dashed #eee}
.mi-variants li:last-child{border-bottom:none}
.mi-variants .vn{font-weight:600}.mi-variants .vp{white-space:nowrap}

.tag{display:inline-block;font-size:.78rem;line-height:1;padding:.25rem .45rem;border:1px solid #e5e7eb;border-radius:.5rem;background:#f8fafc}
.mi-allergens{margin:.25rem 0 .1rem;display:flex;flex-wrap:wrap;gap:.35rem}

.menu-legend{margin:1rem 0 0;border:1px solid #e5e7eb;border-radius:.75rem;background:#fff}
.menu-legend .acc-head{background:#fff;font-size:1rem}
.menu-legend ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:.35rem}
@media(min-width:640px){.menu-legend ul{grid-template-columns:repeat(2,1fr)}}

.ps-card{background:#fff;border:1px solid #e5e7eb;border-radius:1rem;padding:1rem;margin:0 0 1rem}
.ps-head{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1rem;background:linear-gradient(90deg,rgba(200,162,200,.16) 0%,rgba(200,162,200,0) 60%);border:1px solid var(--flieder);border-radius:1rem;padding:1rem}
.ps-title{margin:0;font-size:clamp(1.4rem,2.2vw,1.9rem);font-weight:800}
.ps-contact{display:flex;flex-wrap:wrap;gap:.75rem;color:#334155}
.status{align-self:flex-start;font-weight:600;padding:.25rem .6rem;border-radius:.6rem;color:#fff}
.status.open{background:#16a34a}.status.closed{background:#dc2626}

.plett-res-form label{display:block;margin:.5rem 0;font-weight:600}
.plett-res-form input,.plett-res-form textarea{width:100%;padding:.55rem .7rem;border:1px solid #ddd;border-radius:.6rem}
.plett-res-form button{background:var(--flieder);color:#fff;border:0;padding:.7rem 1rem;border-radius:.6rem;cursor:pointer;width:100%}
.plett-res-form button:hover{background:var(--flieder-dark)}
.plett-res-form .msg{margin-top:.6rem;color:#0f172a;background:#f1f5f9;padding:.5rem .6rem;border-radius:.5rem}

/* Desktop-Finishing */
@media (min-width: 900px) {
  .plett-menu-title { font-size: 1.875rem; font-weight: 800; letter-spacing: -0.01em; margin: 1rem 0 .5rem; }
  .plett-sidegrid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; align-items: start; }
  .plett-sidegrid .ps-block { background: #fff; border: 1px solid var(--flieder); border-radius: 12px; padding: 16px; box-shadow: 0 1px 2px rgba(16,24,40,.04); height: 100%; }
  .plett-sidegrid .ps-block > h2{ margin:0 0 .75rem; font-size:1.1rem; font-weight:700; }
}

/* Accordion Sichtbarkeit absichern */
.acc .acc-body{display:none;}
.acc.open .acc-body{display:block;}
.acc .acc-head{cursor:pointer;}

/* Urlaub-Badge */
.badge.vacation{background:#FFD966;color:#5a4500;border-color:#E3C34E}
.status.vacation{background:#FFD966;color:#5a4500}

/* Hero-Bild im Single-Header */
.ps-head.has-hero{
  position: relative;
  border: 0;
  background: #111;
  color: #fff;
  min-height: 180px;
  padding: 1.25rem;
  border-radius: 1rem;
  overflow: hidden;
}
.ps-head.has-hero::before{
  content:"";
  position:absolute; inset:0;
  background-image: var(--ps-hero, none);
  background-size: cover;
  background-position: center;
  opacity: .25;
}
.ps-head.has-hero .ps-title,
.ps-head.has-hero .ps-contact,
.ps-head.has-hero .status{ position:relative; z-index:1; }
.ps-head.has-hero .status{ background: rgba(0,0,0,.55); backdrop-filter: blur(2px); }

/* Karte responsiv in Box einpassen */
.plett-map{margin-top:.6rem;border-radius:.6rem;overflow:hidden;border:1px solid #e5e7eb}
.plett-map iframe{display:block;width:100%;height:240px;border:0}
@media (min-width:900px){ .plett-map iframe{height:280px} }

/* Mobile: größere H2 wie Desktop */
@media (max-width:899px){
  .plett-single .plett-menu-title,
  .plett-single .ps-block > h2{
    font-size:1.5rem;
    font-weight:800;
    letter-spacing:-.01em;
    line-height:1.2;
    margin:.85rem 0 .6rem;
  }
}
/* ===== PLETTeats: Single-Header lesbar & Badge im Vordergrund ===== */
.plett-single .ps-head{
  position: relative;
  color:#fff; /* Grundfarbe */
}
/* overlay falls ein Bild liegt – Text darüber */
.plett-single .ps-head > *{ position:relative; z-index:2; }
.plett-single .ps-head::after{
  content:"";
  position:absolute; inset:0;
  background: rgba(0,0,0,.35);   /* dunkelt Bild ab */
  z-index:1; border-radius: inherit;
}

/* Titel + Kontaktzeile weiß */
.plett-single .ps-head .ps-title{ color:#fff; text-shadow:0 1px 2px rgba(0,0,0,.35); }
.plett-single .ps-head .ps-contact{ color:rgba(255,255,255,.92); }
.plett-single .ps-head .ps-contact a{ color:#fff; opacity:.95; text-decoration: none; }
.plett-single .ps-head .ps-contact a:hover{ text-decoration: underline; }

/* Status-Badge sicher über dem Overlay */
.plett-single .ps-head .status{
  position:relative; z-index:3;
  color:#fff; font-weight:700;
  box-shadow:0 2px 8px rgba(0,0,0,.25);
}

/* Farben für Zustände (gelb bei Urlaub) */
.plett-single .ps-head .status.open{ background:#16a34a; }
.plett-single .ps-head .status.closed{ background:#dc2626; }
.plett-single .ps-head .status.vacation{ background:#FFD966; color:#4a3800; }

/* ===== Fix: kein doppeltes Abdunkeln + weiße Schrift ===== */

/* Unser Overlay im Header komplett deaktivieren
   (falls du ein leichtes magst, nimm rgba(0,0,0,.15) statt none) */
/* removed: Killt Abdunklungs-Overlay im Single-Header */

/* Text im Header konsequent weiß halten */
.plett-single .ps-head,
.plett-single .ps-head .ps-title,
.plett-single .ps-head .ps-contact,
.plett-single .ps-head .ps-contact a{
  color: #fff !important;
}

/* kleine Lesbarkeitsstütze (optional) */
.plett-single .ps-head .ps-title{
  text-shadow: 0 1px 2px rgba(0,0,0,.25);
}

/* Status-Badge sicher über allem */
.plett-single .ps-head .status{
  position: relative; z-index: 3;
  color: #fff; font-weight: 700;
  box-shadow: 0 2px 8px rgba(0,0,0,.25);
}
.plett-single .ps-head .status.open{ background:#16a34a; }
.plett-single .ps-head .status.closed{ background:#dc2626; }
.plett-single .ps-head .status.vacation{ background:#FFD966; color:#4a3800; }

/* Lieferdienst-Badges im Hero */
.ps-head{ position:relative; }
.ps-hero-right{ position:absolute; top:12px; right:12px; display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.badge.delivery{ background:#2563eb; color:#fff; padding:4px 10px; border-radius:999px; font-weight:600; }
.badge.delivery-fee{ background:#111827; color:#fff; padding:4px 10px; border-radius:999px; }
.badge.delivery-time{ background:#e5e7eb; color:#111827; padding:4px 10px; border-radius:999px; }
@media(max-width: 600px){
  .ps-hero-right{ right:8px; top:8px; gap:6px; }
}

.badge.delivery-min{ background:#374151; color:#fff; padding:4px 10px; border-radius:999px; }


/* Lieferdienst inline zwischen Adresse und Überschrift */
.plett-delivery-inline{ margin: 12px 0 8px; display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.badge.delivery{ background:#2563eb; color:#fff; padding:4px 10px; border-radius:999px; font-weight:600; }
.badge.delivery-fee{ background:#111827; color:#fff; padding:4px 10px; border-radius:999px; }
.badge.delivery-min{ background:#374151; color:#fff; padding:4px 10px; border-radius:999px; }
.badge.delivery-time{ background:#e5e7eb; color:#111827; padding:4px 10px; border-radius:999px; }


/* Lieferdienst inline – lilac theme */
.plett-delivery-inline{ margin: 14px 0 10px; display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.plett-delivery-inline .badge{ background:var(--flieder); color:#4c1d95; padding:6px 12px; border-radius:999px; font-weight:600; font-size:0.95rem; line-height:1; box-shadow:0 1px 0 rgba(0,0,0,.04); }
.plett-delivery-inline .badge.delivery{ background:var(--flieder); color:#4c1d95; }
.plett-delivery-inline .badge.delivery-fee{ background:var(--flieder); color:#4c1d95; }
.plett-delivery-inline .badge.delivery-min{ background:var(--flieder); color:#4c1d95; }
.plett-delivery-inline .badge.delivery-time{ background:var(--flieder); color:#4c1d95; }


.plett-delivery-inline .badge.delivery-note{ background:var(--flieder); color:#4c1d95; }


/* Ensure header links remain clickable (overlay-safe) */
.ps-head .ps-title, .ps-head .ps-contact { position: relative; z-index: 2; }
.ps-head:before, .ps-head:after { pointer-events: none !important; }
.ps-head .ps-contact a { pointer-events: auto; }


/* ===== Revert to Lilac (Flieder) theme ===== */
.plett-delivery-inline .badge{
  background:var(--flieder); color:#4c1d95; padding:6px 12px; border-radius:999px; font-weight:600; font-size:0.95rem; line-height:1;
  box-shadow:0 1px 0 rgba(0,0,0,.04); border:1px solid var(--flieder-dark);
}
.plett-delivery-inline .badge.delivery,
.plett-delivery-inline .badge.delivery-fee,
.plett-delivery-inline .badge.delivery-min,
.plett-delivery-inline .badge.delivery-time,
.plett-delivery-inline .badge.delivery-note{
  background:var(--flieder); color:#4c1d95; border-color:var(--flieder-dark);
}
.plett-menu .acc-head{
  background:#fff; border:1px solid var(--flieder-dark); color:#4c1d95; border-radius:12px; padding:12px 14px;
}
.plett-menu .acc.open .acc-head{ background:var(--flieder); }
.plett-menu .acc-body{
  border-left:3px solid var(--flieder-dark); padding:12px 14px; background:#fff; border-radius:0 12px 12px 12px;
}
.plett-reserve button[type="submit"], .plett-reserve input[type="submit"], .plett-reserve .btn-primary{
  background:#8b5cf6; color:#fff; border:1px solid #7c3aed; border-radius:999px; padding:10px 16px; font-weight:700; cursor:pointer;
}
.plett-reserve button[type="submit"]:hover, .plett-reserve input[type="submit"]:hover, .plett-reserve .btn-primary:hover{
  background:#7c3aed; border-color:#6d28d9;
}
.plett-reserve button[type="submit"]:focus, .plett-reserve input[type="submit"]:focus, .plett-reserve .btn-primary:focus{
  outline:none; box-shadow:0 0 0 3px var(--flieder-dark);
}



/* Hide email link in header (kept in markup) */
.ps-contact a[href^="mailto:"] {
  display: none !important;
}


/* === PLETTeats gray theme overrides === */

/* Hide the entire email contact row (icon + link) without removing markup */
.ps-contact div:has(> a[href^="mailto:"]) { display: none !important; }
.ps-contact a[href^="mailto:"] { display: none !important; } /* fallback */

/* Use light gray instead of lilac across UI blocks; keep text/numbers black */
.plett-filters button,
.plett-res-form button,
.acc-head,
.plett-menu .acc.open .acc-head,
.ps-head,
.mi-price,
.menu-legend .acc-head,
.plett-delivery-inline .badge,
.plett-delivery-inline .badge.delivery,
.plett-delivery-inline .badge.delivery-fee,
.plett-delivery-inline .badge.delivery-min,
.plett-delivery-inline .badge.delivery-time,
.plett-delivery-inline .badge.delivery-note {
  background: var(--flieder) !important;
  color: #111 !important;
  border-color: var(--flieder-dark) !important;
  box-shadow: none;
}

/* Buttons: explicit border to define shape on light gray */
.plett-filters button,
.plett-res-form button {
  border: 1px solid var(--flieder-dark) !important;
}

/* Price pill */
.mi-price {
  border: 1px solid var(--flieder-dark) !important;
}

/* Accordion body keeps white background for readability */
.acc .acc-body { background: #fff; }


/* === PLETTeats border-shadow theme overrides (no gray fills) === */
/* Elements that previously used flieder/gray now use white background + soft border + subtle shadow.
   Status badges (.badge.open/.closed/.vacation) remain unchanged. */

.plett-filters button,
.plett-res-form button,
.acc-head,
.plett-menu .acc.open .acc-head,
.ps-head,
.mi-price,
.menu-legend .acc-head,
.plett-delivery-inline .badge,
.plett-delivery-inline .badge.delivery,
.plett-delivery-inline .badge.delivery-fee,
.plett-delivery-inline .badge.delivery-min,
.plett-delivery-inline .badge.delivery-time,
.plett-delivery-inline .badge.delivery-note {
  background: #fff !important;
  color: #111 !important;
  border: 1px solid #e5e7eb !important;
  box-shadow: 0 1px 2px rgba(16, 24, 40, 0.06) !important;
}

/* Price pill specific */
.mi-price {
  font-weight: 700;
  border-radius: .5rem;
  padding: .15rem .5rem;
}

/* Accordion head hover focus for affordance */
.acc-head:hover,
.plett-filters button:hover,
.plett-res-form button:hover {
  box-shadow: 0 2px 6px rgba(16, 24, 40, 0.10) !important;
}

/* Keep accordion body white for contrast */
.acc .acc-body { background: #fff !important; }


/* === PLETTeats frame-shadow theme (no gray fill) === */
:root{
  --ui-bg:#fff;
  --ui-border:#e5e7eb;        /* slate-200 */
  --ui-border-hover:#d1d5db;  /* slate-300 */
  --ui-shadow:0 1px 2px rgba(16,24,40,.06);
  --ui-shadow-hover:0 2px 6px rgba(16,24,40,.10);
  --ui-hover:rgba(0,0,0,.04);
}

/* Keep email hidden (icon + link) */
.ps-contact div:has(> a[href^="mailto:"]) { display:none !important; }
.ps-contact a[href^="mailto:"] { display:none !important; } /* fallback */

/* Neutral surfaces: frame + shadow, black text, no colored fill */
.plett-filters button,
.plett-res-form button,
.acc-head,
.plett-menu .acc.open .acc-head,
.menu-legend .acc-head,
.mi-price,
.plett-delivery-inline .badge,
.plett-delivery-inline .badge.delivery,
.plett-delivery-inline .badge.delivery-fee,
.plett-delivery-inline .badge.delivery-min,
.plett-delivery-inline .badge.delivery-time,
.plett-delivery-inline .badge.delivery-note,
.ps-head {
  background: var(--ui-bg) !important;
  color: #111 !important;
  border: 1px solid var(--ui-border) !important;
  box-shadow: var(--ui-shadow);
}

/* Hover states: slight darkening + stronger shadow on clickable elements */
.plett-filters button:hover,
.plett-res-form button:hover,
.acc-head:hover,
.plett-menu .acc.open .acc-head:hover,
.menu-legend .acc-head:hover {
  background: var(--ui-hover) !important;
  border-color: var(--ui-border-hover) !important;
  box-shadow: var(--ui-shadow-hover);
}

/* Price pill without heavy fill */
.mi-price {
  background: var(--ui-bg) !important;
  border: 1px solid var(--ui-border) !important;
  box-shadow: none;
}

/* Accordion body stays white for readability */
.acc .acc-body { background:#fff; }


/* === PLETTeats accordion color tweak === */
:root{ --acc-bg: #F5F3EE; } /* user-provided cream tone */

.acc-head,
.plett-menu .acc.open .acc-head,
.menu-legend .acc-head {
  background: var(--acc-bg) !important;
  color: #111 !important; /* keep text black */
}

/* optional: subtle hover darkening without changing borders */
.acc-head:hover,
.plett-menu .acc.open .acc-head:hover,
.menu-legend .acc-head:hover {
  filter: brightness(0.98);
}


/* === PLETTeats hero tweaks (seashell gradient + black text) === */
:root { --hero-seashell: #F5F3EE; }

/* Make hero image fully bright */
.ps-head.has-hero::before {
  opacity: 1 !important;
}

/* Use a gentle left→right gradient to seashell over the hero, under the text */
.plett-single .ps-head::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(to right, rgba(245,243,238,0) 65%, var(--hero-seashell) 100%) !important;
  z-index: 1; border-radius: inherit;
}

/* All header text black (title + contact) */
.plett-single .ps-head,
.plett-single .ps-head .ps-title,
.plett-single .ps-head .ps-contact,
.plett-single .ps-head .ps-contact a {
  color: #111 !important;
  text-shadow: none !important;
}

/* Keep status badge on top and unaffected */
.plett-single .ps-head .status { position: relative; z-index: 3; }


/* === PLETTeats hero layout (image slice right + seashell gradient left) === */
:root {
  --hero-seashell: #FFF5EE;     /* Seashell */
  --hero-img-slice: 28%;        /* width of the image strip on the right */
  --hero-grad-stop: 72%;        /* where the gradient becomes transparent for the image */
}

/* Base: ensure white base under gradients */
.ps-head.has-hero {
  background: #fff !important;
}

/* Right-side image strip only */
.ps-head.has-hero::before {
  content: "";
  position: absolute;
  top: 0; right: 0;
  width: var(--hero-img-slice);
  height: 100%;
  background-image: var(--ps-hero, none);
  background-size: cover;
  background-position: right center;
  opacity: 1 !important;
  z-index: 1;
  border-top-right-radius: inherit;
  border-bottom-right-radius: inherit;
}

/* Left/middle gradient: seashell -> white, then transparent so the image shows */
.plett-single .ps-head::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(
    to right,
    var(--hero-seashell) 0%,
    #ffffff calc(var(--hero-grad-stop) - 6%),
    rgba(255,255,255,0) var(--hero-grad-stop)
  ) !important;
  z-index: 1;
  border-radius: inherit;
}

/* Text: black, no shadow */
.plett-single .ps-head,
.plett-single .ps-head .ps-title,
.plett-single .ps-head .ps-contact,
.plett-single .ps-head .ps-contact a {
  color: #111 !important;
  text-shadow: none !important;
}

/* Ensure content (title, contact, badge) stays above overlays */
.plett-single .ps-head > * { position: relative; z-index: 2; }
.plett-single .ps-head .status { position: relative; z-index: 3; }


/* === PLETTeats hero refined (image slice right, gradient left→white→transparent) === */
:root {
  --hero-seashell: #FFF5EE;
  --hero-img-slice: 28%;
}

.ps-head.has-hero { background:#fff !important; }

/* Put the full image in ::before, then clip to a right-hand slice */
.ps-head.has-hero::before {
  content:"";
  position:absolute; inset:0;
  background-image: var(--ps-hero, none) !important;
  background-size: cover !important;
  background-position: right center !important;
  opacity: 1 !important;
  z-index:1;
  border-radius: inherit;
  /* Keep only the right slice visible */
  clip-path: inset(0 0 0 calc(100% - var(--hero-img-slice))) !important;
}

/* Gradient sits under text, above image, and turns transparent before the image slice */
.plett-single .ps-head::after {
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(
    to right,
    var(--hero-seashell) 0%,
    #FFF5EE 35%,
    #FFFFFF 55%,
    rgba(255,255,255,0) calc(100% - var(--hero-img-slice))
  ) !important;
  z-index:1;
  border-radius: inherit;
}

/* Text stays black */
.plett-single .ps-head,
.plett-single .ps-head .ps-title,
.plett-single .ps-head .ps-contact,
.plett-single .ps-head .ps-contact a {
  color:#111 !important;
  text-shadow:none !important;
}
.plett-single .ps-head > *{ position:relative; z-index:2; }
.plett-single .ps-head .status{ position:relative; z-index:3; }


/* === PLETTeats hero reset: full image, no gradient, black text === */
/* removed: background: transparent !important; (broke hero background) */
.ps-head.has-hero::before {
  content: "";
  position: absolute; inset: 0;
  background-image: var(--ps-hero, none) !important;
  background-size: cover !important;
  background-position: center center !important;
  opacity: 1 !important;
  z-index: 1;
  border-radius: inherit;
  clip-path: none !important;      /* undo slice */
}
.plett-single .ps-head::after {
  /* remove any overlays/gradients applied earlier */
  background: none !important;
}
/* header content above image and black */
.plett-single .ps-head > * { position: relative; z-index: 2; }
.plett-single .ps-head,
.plett-single .ps-head .ps-title,
.plett-single .ps-head .ps-contact,
.plett-single .ps-head .ps-contact a {
  color: #111 !important;
  text-shadow: none !important;
}


/* === PLETTeats hero full-width image on header === */
.ps-head.has-hero {
  background-image: var(--ps-hero, none) !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  /* keep existing padding/border-radius; background paints to border edge */
}
/* Disable previous pseudo layers to avoid clipping/padding issues */
.ps-head.has-hero::before { content: none !important; }
.plett-single .ps-head::after { content: none !important; background: none !important; }

/* Text stays black */
.plett-single .ps-head,
.plett-single .ps-head .ps-title,
.plett-single .ps-head .ps-contact,
.plett-single .ps-head .ps-contact a {
  color:#111 !important;
  text-shadow:none !important;
}


/* === PLETTeats hero seashell darken overlay === */
:root { --hero-tint: #F5F3EE; --hero-tint-alpha: 0.25; }

/* Re-enable an overlay above the background image to slightly darken with seashell tint */
.plett-single .ps-head.has-hero::after {
  content: "" !important;                 /* override previous 'content:none' */
  position: absolute; inset: 0;
  background: rgba(245,243,238, var(--hero-tint-alpha)) !important;
  mix-blend-mode: multiply;               /* use seashell tint to subtly darken */
  border-radius: inherit;
  z-index: 1;
}

/* Ensure content is above tint and remains black */
.plett-single .ps-head > * { position: relative; z-index: 2; }
.plett-single .ps-head,
.plett-single .ps-head .ps-title,
.plett-single .ps-head .ps-contact,
.plett-single .ps-head .ps-contact a {
  color: #111 !important;
  text-shadow: none !important;
}


/* === PLETTeats hero tint via background-blend-mode (reliable) === */
:root { --hero-tint-alpha: 0.22; } /* subtle */

.ps-head.has-hero {
  /* Put seashell tint as first background layer, image as second */
  background-image:
    linear-gradient(rgba(245,243,238,var(--hero-tint-alpha)), rgba(245,243,238,var(--hero-tint-alpha))),
    var(--ps-hero, none) !important;
  background-size: 100% 100%, cover !important;
  background-position: center center, center center !important;
  background-repeat: no-repeat, no-repeat !important;
  background-blend-mode: multiply, normal !important;
}

/* Ensure no pseudo layers interfere */
/* removed: Deaktiviert Overlays global */

/* Header text black */
.plett-single .ps-head,
.plett-single .ps-head .ps-title,
.plett-single .ps-head .ps-contact,
.plett-single .ps-head .ps-contact a {
  color:#111 !important;
  text-shadow:none !important;
}


/* === FIX: canonical hero background with seashell tint === */
:root { --hero-tint-alpha: 0.22; }
.ps-head.has-hero {
  background-image: var(--ps-hero, none) !important;
  background-color: rgba(245,243,238, var(--hero-tint-alpha)) !important; /* #F5F3EE */
  background-blend-mode: multiply !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
}
.plett-single .ps-head,
.plett-single .ps-head .ps-title,
.plett-single .ps-head .ps-contact,
.plett-single .ps-head .ps-contact a {
  color:#111 !important;
  text-shadow:none !important;
}


/* === FINAL FORCE HERO FIX (image + seashell darken overlay) === */
/* Use the header element selector to increase specificity */
header.ps-head.has-hero {
  background-image: var(--ps-hero, none) !important;
  background-color: #F5F3EE !important;
  background-blend-mode: multiply !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  position: relative;
}

/* Kill any previous pseudo rules that interfere */
header.ps-head.has-hero::before {
  content: none !important;
  background: none !important;
}

/* Seashell darken overlay above background, below content */
header.ps-head.has-hero::after {
  content: "" !important;
  position: absolute; inset: 0;
  background: #F5F3EE !important;
  mix-blend-mode: multiply !important;
  opacity: 1 !important;
  pointer-events: none;
  z-index: 1;
  border-radius: inherit;
}

/* Content must sit above overlay */
header.ps-head.has-hero > * { position: relative; z-index: 2; }

/* Text black */
.plett-single header.ps-head.has-hero,
.plett-single header.ps-head.has-hero .ps-title,
.plett-single header.ps-head.has-hero .ps-contact,
.plett-single header.ps-head.has-hero .ps-contact a {
  color: #111 !important;
  text-shadow: none !important;
}


/* === PLETTeats header minimal (single hero) === */
.plett-single .ps-head.has-hero{
  background-image: var(--ps-hero, none);
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}
/* Header-Text schwarz; E-Mail-Link bleibt verborgen */
.plett-single .ps-head,
.plett-single .ps-head .ps-title,
.plett-single .ps-head .ps-contact,
.plett-single .ps-head .ps-contact a{
  color:#111;
  text-shadow:none;
}
.plett-single .ps-head .ps-contact a[href^="mailto:"]{
  display:none !important;
}


/* Title/contact moved below header */
.ps-titlewrap { margin-bottom: 1rem; }
.ps-title-out { margin: 0 0 .4rem 0; }
.ps-contact-out > div { margin: .15rem 0; }

/* Status badge bottom-left inside hero */
.plett-single .ps-head { position: relative; }
.plett-single .ps-head .status {
  position: absolute;
  left: 14px;
  bottom: 14px;
  z-index: 3;
}

/* Hide email (markup kept) */
.ps-contact a[href^="mailto:"] { display: none !important; }


/* Enforce badge position and hide any residual contact inside header */
body.single-plett_eatery .ps-head { position: relative !important; }
body.single-plett_eatery .ps-head .status {
  position: absolute !important;
  left: 14px !important;
  bottom: 14px !important;
  top: auto !important;
  z-index: 3 !important;
}
/* Ensure header shows no contact/title even if theme injects something */
body.single-plett_eatery .ps-head .ps-title,
body.single-plett_eatery .ps-head .ps-contact,
body.single-plett_eatery .ps-head a[href^="tel:"],
body.single-plett_eatery .ps-head a[href^="mailto:"],
body.single-plett_eatery .ps-head a[href^="http"]{
  display: none !important;
}



/* Single header: badge bottom-left inside hero */
body.single-plett_eatery .ps-head { position: relative; }
body.single-plett_eatery .ps-head .status {
  position: absolute; left: 14px; bottom: 14px; z-index: 3;
}

/* Email link hidden anywhere in contact lists */
.ps-contact a[href^="mailto:"] { display: none !important; }


/* PLETT two-column reinforcement */
@media (min-width: 900px){
  .plett-single .ps-cols{
    display: grid;
    grid-template-columns: minmax(0,1fr) 360px;
    gap: 1.25rem;
    align-items: start;
  }
}


/* Align tops of first blocks in each column */
.plett-single .ps-cols .ps-main > .ps-block:first-child,
.plett-single .ps-cols .ps-side > .ps-block:first-child{ margin-top: 0; }
.plett-single .ps-cols .ps-main > .ps-block:first-child .plett-menu-title,
.plett-single .ps-cols .ps-side > .ps-block:first-child .plett-menu-title{ margin-top: 0; }



/* Row 2: Öffnungszeiten+Map above, reservation below (desktop) */
@media (min-width: 900px){
  .plett-single .ps-cols.ps-cols-reserv{
    display: grid;
    grid-template-columns: minmax(0,1fr) 360px;
    grid-template-rows: auto auto;
    grid-template-areas:
      "main ."
      "main side";
    column-gap: 1.25rem;
    row-gap: 1.25rem;
    align-items: start;
  }
  .plett-single .ps-cols.ps-cols-reserv .ps-main{ grid-area: main; }
  .plett-single .ps-cols.ps-cols-reserv .ps-side{ grid-area: side; }
}


/* PLETT equal two columns */
@media (min-width: 900px){
  .plett-single .ps-cols.ps-two{
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.25rem;
    align-items: start;
  }
}


/* PLETT Seashell theme + hover-darken (non-destructive overrides) */
:root{ --plett-shell:#F5F3EE; }

/* Only shadows; gently darken on hover */
.plett-single .ps-card,
.plett-single .ps-block,
.plett-single .badge,
.plett-single .acc-head,
.plett-single .menu-sec.acc,
.plett-single .plett-res-form button{
  box-shadow: 0 1px 0 rgba(0,0,0,.05), 0 6px 18px rgba(0,0,0,.06);
  transition: filter .15s ease, background-color .15s ease;
}
/* Accordion sections use Seashell – text stays black */
.plett-menu .menu-sec.acc .acc-head{ background: var(--plett-shell); color:#000; }
.plett-menu .menu-sec.acc .mi-name,
.plett-menu .menu-sec.acc .mi-price,
.plett-menu .menu-sec.acc .mi-desc{ color:#000; }

/* Hide mail in contact (still present in markup) */
.ps-contact a[href^="mailto:"],
.ps-contact .dashicons-email,
.ps-contact .ico-mail{ display:none !important; }

/* Badge remains bottom-left in hero */
body.single-plett_eatery .ps-head{ position:relative; }
body.single-plett_eatery .ps-head .status{ position:absolute; left:14px; bottom:14px; z-index:3; }


/* Refined hover: only accordion headers + reservation button (milder) */
.plett-menu .menu-sec.acc .acc-head:hover{ filter: brightness(0.985); }
.plett-single .plett-res-form button:hover{ filter: brightness(0.985); }

/* === PLETTeats: alle Schatten AUS auf Single, außer im Akkordeon === */

/* 1) Alles auf der Single killen (inkl. ::before/::after, drop-shadow etc.) */
html body.single-plett_eatery :where(*, *::before, *::after) {
  box-shadow: none !important;
  text-shadow: none !important;
  filter: none !important;           /* fängt drop-shadow() ab */
  backdrop-filter: none !important;
}

/* 2) Ausnahme: Akkordeon darf Tiefe behalten */
html body.single-plett_eatery .plett-menu .acc-head,
html body.single-plett_eatery .plett-menu .acc-body {
  box-shadow: 0 1px 2px rgba(0,0,0,.06) !important;
  text-shadow: none !important;
  filter: none !important;
  backdrop-filter: none !important;
}
/* === PLETT: Lieferdienst-Popover === */
.plett-delivery-btn { cursor: help; }

.plett-qmark {
  position: fixed; width: 18px; height: 18px; border-radius: 50%;
  background: #fff; border: 1px solid #d0d0d0;
  display: grid; place-items: center;
  font: 700 12px/1 system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  color: #333; box-shadow: 0 2px 6px rgba(0,0,0,.15);
  pointer-events: none; z-index: 10000;
}

.plett-popover {
  position: fixed; z-index: 9999;
  background: #fff; border: 1px solid rgba(0,0,0,.12);
  border-radius: 10px; box-shadow: 0 12px 28px rgba(0,0,0,.14);
  padding: 10px 12px; min-width: 240px; max-width: 360px;
  font-size: 14px;
}
.plett-popover ul { margin: 0; padding: 0; list-style: none; }
.plett-popover li { padding: 4px 0; border-bottom: 1px dashed #eee; }
.plett-popover li:last-child { border-bottom: 0; }

/* Safety: Alles mit [hidden] ist wirklich weg */
[hidden] { display: none !important; }

/* 3) Seashell bleibt – keine Änderung an Variablen/Farben nötig */

/* === v0.7.4-7: Kartenlayout für Speisekarte (statt Akkordeon) === */
.plett-menu.plett-menu-cards { margin-top: 10px; }
.plett-menu.plett-menu-cards .menu-sec-head { margin: 24px 0 8px; }
.plett-menu.plett-menu-cards .menu-sec-title { font-size: 1.35rem; margin: 0; }
.plett-menu.plett-menu-cards .menu-sec-note { margin: 4px 0 0; color:#555; font-size: .95rem; }

/* Raster der Karten */
.plett-menu.plett-menu-cards .menu-cards {
  list-style: none; padding: 0; margin: 12px 0 6px;
  display: grid; gap: 12px;
  grid-template-columns: 1fr;
}
@media (min-width: 900px){
  .plett-menu.plett-menu-cards .menu-cards { grid-template-columns: 1fr 1fr; }
}

/* Einzelne Karte */
.plett-menu.plett-menu-cards .menu-card {
  background: #fff;
  border: 1px solid #e6e6e6;
  border-radius: 10px;
  padding: 12px 14px;
  /* Keine Schatten – wir bleiben bei „Schatten weg“ */
  box-shadow: none;
}

/* Kopfzeile: Name + Preis */
.plett-menu.plett-menu-cards .mc-top {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: baseline;
  gap: 8px;
}
.plett-menu.plett-menu-cards .mc-name { font-weight: 600; }
.plett-menu.plett-menu-cards .mc-price { font-weight: 600; white-space: nowrap; }

/* Beschreibung */
.plett-menu.plett-menu-cards .mc-desc { margin-top: 6px; color:#222; line-height: 1.4; }

/* Icons inline */
.plett-menu.plett-menu-cards .mi-icons.inline { margin-left: 8px; font-weight: 400; opacity: .9; }

/* Allergene */
.plett-menu.plett-menu-cards .mc-allergens { margin-top: 8px; }
.plett-menu.plett-menu-cards .mc-allergens .tag { display:inline-block; margin-right:6px; margin-bottom:4px; }

/* Variantenliste in Karte */
.plett-menu.plett-menu-cards .mc-variants { list-style:none; padding:0; margin:8px 0 0; }
.plett-menu.plett-menu-cards .mc-variants li {
  display:grid; grid-template-columns: 1fr auto; gap:8px; padding:2px 0;
}
.plett-menu.plett-menu-cards .mc-variants .vn { opacity:.95; }
.plett-menu.plett-menu-cards .mc-variants .vp { font-weight:500; }

/* Legendenblock ohne Akkordeon */
.plett-menu.plett-menu-cards .menu-legend-block { margin: 24px 0; }
.plett-menu.plett-menu-cards .menu-legend-block h3 { margin: 0 0 8px; font-size: 1.15rem; }
.plett-menu.plett-menu-cards .menu-legend-block ul { list-style: none; padding:0; margin:0; }
.plett-menu.plett-menu-cards .menu-legend-block li { margin: 4px 0; }

/* Hinweisleiste: nächste Öffnung / offen-bis – volle Breite im Content */
.plett-open-note{
  display: block;
  width: 100%;
  margin: 12px 0 16px;
  padding: 12px 14px;
  border: 1px solid #e8e6e0;
  border-radius: 8px;
  background: var(--plett-shell, #F5F3EE);
  font-weight: 500;
  box-sizing: border-box;
}
.plett-open-note .icon { margin-right: 6px; }

/* Kategorien-Übersicht für Speisekarte */
.plett-menu-toc { padding-top: 8px; padding-bottom: 8px; }
.plett-menu-toc ul {
  display: flex;
  gap: 8px;
  flex-wrap: nowrap;
  overflow-x: auto;
  padding: 4px 2px;
  margin: 0;
  list-style: none;
  -webkit-overflow-scrolling: touch;
}
.plett-menu-toc li { flex: 0 0 auto; }
.plett-menu-toc a {
  display: inline-block;
  padding: 6px 10px;
  border: 1px solid #e5e5e5;
  border-radius: 999px;
  text-decoration: none;
  white-space: nowrap;
  background: var(--plett-shell, #F5F3EE);
  color: #000;
  font-size: 14px;
  line-height: 1.2;
}
.plett-menu-toc a:hover,
.plett-menu-toc a:focus {
  outline: none;
  border-color: #ccc;
  background: #fff;
}
/* PLETTeats – Filterleiste: Mobile-Layout (Suche oben, Filter darunter) */
@media (max-width: 760px){

  /* Wir benutzen Flex, damit wir die Reihenfolge sicher steuern können */
  .plett-filters{
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: stretch;
    justify-content: flex-start;
  }

  /* Jedes direkte Kindelement bekommt eine eigene Reihe */
  .plett-filters > *{
    flex: 1 0 100%;
    max-width: 100%;
    min-width: 0;
  }

  /* Die Suchleiste *immer* als erstes Element oben */
  .plett-filters > input[type="search"]{
    order: 0;            /* ganz nach oben */
    width: 100%;
  }

  /* Gruppe mit den Toggle-Checkboxen (Klassen variieren je nach Markup) */
  .plett-filters .toggles,
  .plett-filters .checks,
  .plett-filters .filters,
  .plett-filters fieldset{
    order: 1;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
  }

  /* Das Sortier-Select darf darunter stehen und schmal bleiben */
  .plett-filters select{
    order: 2;
    width: auto;
    max-width: 100%;
  }

  /* Sicherheitsnetz: keine seitlichen Überläufe */
  .plett-filters{ overflow: visible; }
}
/* PLETTeats – Mobile: Suche oben, Filter darunter (ohne Horizontal-Scroll) */
@media (max-width:760px){
  .plett-filters{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
    align-items:stretch !important;
    justify-items:stretch !important;
    overflow:visible !important;
  }

  /* Alle direkten Kinder ganzflächig, keine Auto-Margins/Floats */
  .plett-filters > *{
    width:100% !important;
    max-width:100% !important;
    flex:0 0 auto !important;
    margin:0 !important;
    float:none !important;
  }

  /* Die Suchleiste nimmt die volle Breite */
  .plett-filters input[type="search"],
  .plett-filters .search,
  .plett-filters .search input{
    width:100% !important;
  }

  /* Checkbox-/Toggle-Gruppe darf umbrechen */
  .plett-filters .toggles,
  .plett-filters .checks,
  .plett-filters fieldset{
    display:flex !important;
    flex-wrap:wrap !important;
    gap:8px !important;
    width:100% !important;
  }

  /* Sortier-Select bleibt schmal, steht aber unter der Suche */
  .plett-filters select{
    width:auto !important;
    justify-self:start !important;
  }
}
/* PLETTeats – mobil: "Jetzt geöffnet" & "Lieferdienst" nebeneinander */
@media (max-width:760px){
  /* Die Filterleiste als 2-Spalten-Grid */
  .plett-filters{
    display:grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap:10px !important;
    align-items:stretch !important;
  }

  /* Suche bleibt oben über die volle Breite */
  .plett-filters > input[type="search"],
  .plett-filters .search { 
    grid-column: 1 / -1 !important; 
    width:100% !important;
  }

  /* Sortier-Select darunter ebenfalls volle Breite */
  .plett-filters select{
    grid-column: 1 / -1 !important;
    width:100% !important;
  }

  /* Jedes direkte Kind, das eine Checkbox enthält, belegt je eine Spalte */
  .plett-filters > *:has(> input[type="checkbox"]){
    grid-column: span 1 !important;
    width:100% !important;
  }

  /* Falls das Theme die Checkbox direkt in ein <label> packt – Optik sichern */
  .plett-filters > label:has(> input[type="checkbox"]){
    display:flex; align-items:center; gap:.5rem;
    border:1px solid #e5e7eb; border-radius:.6rem; padding:.75rem;
    width:100%;
  }
}
/* === PLETTeats: zweispaltige Allergen-Legende (Buchstaben | Zahlen) === */
.menu-legend-block { margin-top: 1rem; }
.menu-legend-block .legend-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
@media (max-width: 640px) {
  .menu-legend-block .legend-grid { grid-template-columns: 1fr; }
}
.menu-legend-block .legend-col h4 {
  margin: 0 0 .5rem;
  font-size: .95rem;
  font-weight: 700;
  color: #0f172a;
}
.menu-legend-block ul { list-style: none; margin: 0; padding: 0; }
.menu-legend-block li { display: flex; align-items: center; gap: .5rem; margin: .25rem 0; }
.menu-legend-block .tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.3em;
  height: 1.3em;
  padding: .15rem .45rem;
  border-radius: 999px;
  background: #f3f4f6;
  color: #111827;
  font-weight: 700;
  font-size: .85rem;
  line-height: 1;
}
\n/* === PLETTeats: Legende – Spaltenüberschriften ausgeblendet; Fallback-Hinweis === */
.menu-legend-block .legend-col h4 { display: none; }
.menu-legend-block .legend-empty { margin: .25rem 0 0; color: #334155; }\n

/* injected: feature badges in hero */
.plett-single .ps-hero-right{
  position:absolute; top:12px; right:12px; display:flex; gap:8px; flex-wrap:wrap; align-items:center; z-index:3;
}
.plett-single .ps-hero-right .badge.feature{
  background: rgba(0,0,0,.45); color:#fff; border-color: rgba(255,255,255,.5);
}
@media(max-width:600px){
  .plett-single .ps-hero-right{ top:8px; right:8px; gap:6px; }
}


/* === PLETTeats: Unified badge styling (cards + single) === */
.plett-card .card-badges{ display:flex; gap:6px; align-items:center; flex-wrap:wrap; }
.badge{ display:inline-flex; align-items:center; gap:6px; padding:4px 10px; border-radius:9999px; font-size:12px; line-height:1; border:1px solid #e5e7eb; background:#fff; color:#111827; }
.badge .ico{ line-height:1; display:inline-block; transform: translateY(0.5px); }
.badge .txt{ line-height:1; }
.badge.open{ display:inline-flex; align-items:center; height:24px; padding:0 10px; }
.badge.badge--delivery{ border-color:#fecaca; color:#991b1b; background:#fff; }
.badge.badge--feature{ border-color:#e5e7eb; color:#111827; background:#fff; }

/* Gold wie „Lokal des Monats“ */
.plett-gold { color: #d4af37; }

/* Optional: exakter Gold-Verlauf (wie das Banner)
.plett-gold {
  background: linear-gradient(135deg,#ffe08a,#ffd04d,#f7c948,#e6b935);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
} */