/* Restaurant-Detailseite (Phase 2, Phase 6 an das Portaldesign angepasst) – Ueberblick, Speisekarte, Bilder, Lage & Kontakt.
   NEUE Datei: alle Regeln haengen unter .tp-rd (Wurzel der Vorlage restaurant-detail.php) und betreffen weder die Restaurant-
   uebersicht (tp-place-list*.css, tp-lk-*) noch andere Profile. Geladen nach tp-place-detail.css und tp-galerie.css, deren Klassen
   (Register, Speisekartenbereiche, Kartenkasten, Galerie, Grossansicht) wiederverwendet und hier nur angepasst werden.
   Phase 6: Die Ansicht traegt keine eigene Flaeche, keinen Rahmen und kein eigenes Farbsystem mehr, sondern die Werte des Portaldesigns
   (Elementor-Kit / tp-gardasee-restaurant-design.css: Marke #009FE3, Button #D81F84, Text #173247, Rahmen #D9E6ED, Link #006B99,
   Montserrat) und die Inhaltsbreite des Themas. Keine Schriften, Bilder oder Skripte von fremden Servern. */

/* ============================== GRUNDLAGEN ============================== */
.tp-rd{
  --rd-grund:transparent;    /* keine eigene Flaeche: der Inhaltsbereich des Themas bleibt sichtbar */
  --rd-karte:#FFFFFF;        /* Kartenflaeche                                  */
  --rd-linie:#D9E6ED;        /* Portal: rahmen                                 */
  --rd-haar:#E6EEF3;
  --rd-akzent:#009FE3;       /* Portal: marke (Linien, Symbole)                */
  --rd-link:#006B99;         /* Portal: link, Text auf Weiss 5,9:1              */
  --rd-btn:#D81F84;          /* Portal: button, weisse Schrift 4,9:1            */
  --rd-btn-hover:#A91566;    /* Portal: button_hover                           */
  --rd-flaeche:#F2F8FB;      /* Portal: hintergrund                            */
  --rd-text:#173247;         /* Portal: text                                   */
  --rd-muted:#526571;        /* Portal: text_gedaempft, 6,4:1                  */
  --rd-fokus:#A91566;
  --rd-leiste-h:4.25rem;
  /* Tokens des Bestands (tp-place-detail.css setzt sie am Elternelement .tp-place auf Oliv/Georgia) lokal auf die Portalwerte setzen */
  --tp-ink:#173247;--tp-ink-soft:#2D4A5C;--tp-muted:#526571;--tp-line:#D9E6ED;--tp-hair:#E6EEF3;--tp-soft:#F2F8FB;--tp-cream:#FFFFFF;
  --tp-green:#009FE3;--tp-green-dark:#006B99;--tp-green-ink:#006B99;--tp-green-soft:#F2F8FB;
  --tp-serif:'myMontserrat','Montserrat',Arial,sans-serif;--tp-r:12px;--tp-r-s:8px;
  position:relative;background:none;border-radius:0;
  padding:.4rem 0 2.6rem;color:var(--rd-text);
}
.tp-rd,.tp-rd *,.tp-rd *::before,.tp-rd *::after{box-sizing:border-box}
.tp-rd :where(h1,h2,h3,p,ul,ol){margin-top:0}
.tp-rd :where(img){max-width:100%}
.tp-rd [hidden]{display:none!important}
.tp-rd .tp-view[hidden]{display:none!important}
.tp-rd-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}

/* Sichtbarer Tastaturfokus fuer alle bedienbaren Elemente dieser Seite */
.tp-rd a:focus-visible,.tp-rd button:focus-visible,.tp-rd summary:focus-visible,.tp-rd [tabindex]:focus-visible{
  outline:3px solid var(--rd-fokus);outline-offset:2px;border-radius:4px}
.tp-rd .tp-view:focus{outline:none}
.tp-rd .tp-view:focus-visible{outline:2px solid var(--rd-fokus);outline-offset:2px;border-radius:4px}

.tp-rd__h2{font-family:var(--tp-serif);font-size:clamp(1.4rem,2.2vw,1.8rem);line-height:1.25;font-weight:700;margin:0 0 .7rem;color:var(--rd-text)}
.tp-rd__h3{font-family:var(--tp-serif);font-size:1.25rem;font-weight:600;margin:0 0 .6rem}
.tp-rd__klein{font-size:.9rem;line-height:1.5;color:var(--rd-muted);margin:.12rem 0 0}
.tp-rd__karte-titel{font-family:var(--tp-serif);font-size:1.3rem;font-weight:600;margin:0 0 1rem;color:var(--rd-text)}

/* ================================== KOPF ================================== */
.tp-rd__crumbs{margin:0 0 1.1rem;font-size:.82rem}
.tp-rd__crumbs .tp-crumbs__item{white-space:normal;min-width:0}
.tp-rd__crumbs .tp-crumbs__item:last-child{overflow-wrap:anywhere}
.tp-rd__titelzeile{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin:0 0 1.15rem}
.tp-rd__titel{min-width:0}
.tp-rd__art{font-size:.72rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--rd-muted);margin:0 0 .3rem}
.tp-rd__name{font-family:var(--tp-serif);font-size:clamp(1.85rem,3.6vw,2.7rem);line-height:1.12;font-weight:700;letter-spacing:0;
  margin:0;color:var(--rd-text);overflow-wrap:anywhere;hyphens:auto}
.tp-rd__ort{font-size:1.05rem;color:var(--rd-muted);margin:.35rem 0 0}
.tp-rd .tp-acts{padding:0;flex:0 0 auto}
.tp-rd .tp-acts button{min-height:44px;padding:.5rem 1.05rem;border-radius:8px;border:1px solid var(--rd-linie);background:var(--rd-karte);
  color:var(--rd-text);font-size:.9rem}
.tp-rd .tp-acts button:hover{background:var(--rd-flaeche);border-color:var(--rd-akzent)}
.tp-rd .tp-acts button.is-on{border-color:var(--rd-akzent);color:var(--rd-link);background:var(--rd-flaeche)}

/* ============================== BILDMOSAIK =============================== */
.tp-rd__medien{position:relative;margin:0 0 1.2rem}
/* Kompakter Kopf auf den uebrigen Reitern: das Mosaik gehoert nur zum Ueberblick. Ohne :has() (aeltere Browser) bleibt es sichtbar. */
.tp-rd:has(.tp-view--overview:not(.is-active)) .tp-rd__medien{display:none}
.tp-rd__mosaik{list-style:none;margin:0;padding:0;display:grid;gap:.5rem;
  grid-template-columns:2fr 1fr 1fr;grid-template-rows:1fr 1fr;height:clamp(17rem,31vw,27rem)}
.tp-rd__kachel{margin:0;min-width:0;min-height:0;overflow:hidden;border-radius:10px;background:var(--rd-flaeche)}
.tp-rd__kachel img{display:block;width:100%;height:100%;object-fit:cover}
.tp-rd__kachel--gross{grid-row:1 / span 2}
.tp-rd__medien--n1 .tp-rd__mosaik{grid-template-columns:1fr;grid-template-rows:1fr;height:clamp(15rem,30vw,25rem)}
.tp-rd__medien--n1 .tp-rd__kachel--gross{grid-row:auto}
.tp-rd__medien--n2 .tp-rd__mosaik{grid-template-columns:2fr 1fr;grid-template-rows:1fr}
.tp-rd__medien--n2 .tp-rd__kachel--gross{grid-row:auto}
.tp-rd__medien--n3 .tp-rd__mosaik{grid-template-columns:2fr 1fr}
.tp-rd__medien--n4 .tp-rd__kachel:nth-child(4){grid-column:3;grid-row:1 / span 2}
.tp-rd__alle{position:absolute;right:.8rem;bottom:.8rem;display:inline-flex;align-items:center;gap:.45rem;min-height:44px;padding:.45rem .95rem;
  border-radius:8px;background:var(--rd-karte);border:1px solid var(--rd-linie);color:var(--rd-text);font-size:.9rem;font-weight:600;
  text-decoration:none;box-shadow:0 1px 4px rgba(0,0,0,.14)}
.tp-detail a.tp-rd__alle{color:var(--rd-text)}
.tp-detail a.tp-rd__alle:hover{background:var(--rd-flaeche);text-decoration:none}
[data-tp-rd-mosaik]{cursor:pointer}

/* Ohne Bilder: neutraler Platzhalter statt Mosaik (kein Foto, keine Abbildung) */
.tp-rd__medien--leer{margin:0 0 1.2rem}
.tp-rd__platzhalter{display:flex;align-items:center;gap:1.1rem;min-height:clamp(6.5rem,11vw,8rem);padding:1.1rem clamp(1.1rem,3vw,2rem);
  border:1px dashed var(--rd-linie);border-radius:var(--tp-r,12px);background:linear-gradient(135deg,var(--rd-flaeche),var(--rd-karte))}
.tp-rd__platzhalter-ico{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:3.4rem;height:3.4rem;border-radius:50%;
  background:var(--rd-karte);border:1px solid var(--rd-linie);color:var(--rd-akzent)}
.tp-rd__platzhalter-ico .tp-ico{width:1.5rem;height:1.5rem}
.tp-rd__platzhalter-text{min-width:0}
.tp-rd__platzhalter-titel{margin:0;font-weight:700;font-size:1.05rem;color:var(--rd-text)}
.tp-rd__platzhalter-hinweis{margin:.2rem 0 0;font-size:.92rem;line-height:1.5;color:var(--rd-muted)}
.tp-rd__textlink{display:inline-block;padding:.5rem 0;font:inherit;font-weight:600;color:var(--rd-link);background:none;border:0;cursor:pointer;
  text-align:left;text-underline-offset:2px}
/* Hotfix 0.9.93: Das Thema (Astra/Elementor-Kit) faerbt jeden button:hover und button:focus mit rosa Hintergrund und weisser Schrift
   (button:hover,button:focus{color:#fff;background-color:#db1385;border-color:#db1385}). Der Fotohinweis ist ein button, soll aber ein Textlink bleiben:
   in allen Zustaenden ohne Flaeche, Text mindestens 4,5 : 1 auf dem Platzhalter (#F2F8FB). Nur dieses Element, keine globale Themeregel. */
.tp-detail.tp-rd .tp-rd__textlink,
.tp-detail.tp-rd .tp-rd__textlink:hover,
.tp-detail.tp-rd .tp-rd__textlink:focus,
.tp-detail.tp-rd .tp-rd__textlink:active{background:none;border-color:transparent;box-shadow:none;text-decoration:underline}
.tp-detail.tp-rd .tp-rd__textlink:focus{color:var(--rd-link)}
.tp-detail.tp-rd .tp-rd__textlink:hover,
.tp-detail.tp-rd .tp-rd__textlink:active{color:var(--rd-btn-hover)}
.tp-detail.tp-rd .tp-rd__textlink:focus-visible{outline:3px solid var(--rd-fokus);outline-offset:2px;border-radius:4px}

/* ================================== REITER ================================ */
.tp-rd .tp-bar.tp-rd__bar{border-bottom:1px solid var(--rd-linie);margin:0 0 1.9rem}
.tp-rd .tp-tabs{gap:0;flex-wrap:nowrap;scrollbar-width:thin}
.tp-rd .tp-tabs__link{display:inline-flex;align-items:center;min-height:48px;padding:.5rem .15rem;margin:0 1.6rem -1px 0;font-size:.98rem;
  font-weight:500;color:var(--rd-muted);border-bottom:3px solid transparent}
.tp-detail .tp-rd .tp-tabs__link{color:var(--rd-muted)}
.tp-rd .tp-tabs__link:hover{color:var(--rd-text);text-decoration:none}
.tp-rd .tp-tabs__link[aria-selected="true"]{color:var(--rd-text);font-weight:700;border-bottom-color:var(--rd-akzent)}
/* Ohne Skript uebernimmt :target die Auswahl; das Bilder-Panel ist neu und braucht dieselbe Regel wie im Bestand. */
.tp-rd:not(.tp-js) .tp-view--bilder:target{display:block!important}
.tp-rd:not(.tp-js) .tp-view--menu:target,.tp-rd:not(.tp-js) .tp-view--info:target{display:block!important}

/* =============================== BUTTONS ================================= */
.tp-rd-btn{display:flex;align-items:center;justify-content:center;gap:.55rem;width:100%;min-height:46px;padding:.65rem 1rem;border-radius:8px;
  font-size:.96rem;font-weight:600;line-height:1.25;text-decoration:none;cursor:pointer;border:1.5px solid transparent;text-align:center;
  font-family:inherit;transition:background .15s ease,border-color .15s ease}
.tp-rd-btn .tp-ico{width:1.15rem;height:1.15rem}
.tp-detail a.tp-rd-btn--primaer,.tp-detail button.tp-rd-btn--primaer,.tp-rd .tp-rd-btn--primaer{background:var(--rd-btn);border-color:var(--rd-btn);color:#fff}
.tp-detail a.tp-rd-btn--primaer:hover,.tp-detail button.tp-rd-btn--primaer:hover{background:var(--rd-btn-hover);border-color:var(--rd-btn-hover);color:#fff;text-decoration:none}
.tp-detail a.tp-rd-btn--rand,.tp-rd .tp-rd-btn--rand{background:#fff;border-color:var(--rd-btn);color:var(--rd-btn-hover)}
.tp-detail a.tp-rd-btn--rand:hover{background:var(--rd-flaeche);color:var(--rd-btn-hover);text-decoration:none}
.tp-detail a.tp-rd-btn--text,.tp-rd .tp-rd-btn--text{justify-content:flex-start;background:none;border-color:transparent;color:var(--rd-link);padding:.55rem .5rem;font-weight:600}
.tp-detail a.tp-rd-btn--text:hover{background:var(--rd-flaeche);color:var(--rd-link);text-decoration:none}
.tp-rd-btn__ext{margin-left:auto}
.tp-rd-btn--demo{border-style:dashed;opacity:.8;cursor:default}
.tp-rd .tp-rd-btn--primaer.tp-rd-btn--demo{background:var(--rd-flaeche);color:var(--rd-link);border-color:var(--rd-akzent)}

.tp-rd__weiter{display:inline-flex;align-items:center;gap:.4rem;min-height:44px;font-weight:600;color:var(--rd-link)}
.tp-detail a.tp-rd__weiter{color:var(--rd-link)}

/* ============================== UEBERBLICK =============================== */
.tp-rd__spalten{display:grid;grid-template-columns:minmax(0,1fr) 22rem;gap:clamp(1.5rem,3.4vw,3rem);align-items:start}
.tp-rd__haupt{min-width:0;display:flex;flex-direction:column;gap:2.1rem}
.tp-rd__seite{display:flex;flex-direction:column;gap:1.2rem;min-width:0}
.tp-rd__lead{font-size:1.14rem;line-height:1.6;color:var(--rd-text);margin:0 0 .8rem}
.tp-rd__prose{font-size:1.02rem;line-height:1.75;color:var(--rd-muted);margin:0 0 .85rem;max-width:44rem;overflow-wrap:anywhere}
.tp-rd .tp-text-rueckfall{font-size:.9rem;margin:0 0 .7rem}

.tp-rd__chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.55rem}
.tp-rd__chip{display:inline-flex;align-items:center;gap:.45rem;min-height:40px;padding:.4rem .95rem;border-radius:999px;background:var(--rd-karte);
  border:1px solid var(--rd-linie);font-size:.92rem;color:var(--rd-text)}
.tp-rd__chip .tp-ico{color:var(--rd-akzent)}

.tp-rd .tp-panel{background:var(--rd-karte);border-color:var(--rd-linie);margin:0}

.tp-rd__vorschau{border-top:1px solid var(--rd-linie);padding-top:1.7rem}
.tp-rd__vorschau-bereich{font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--rd-muted);margin:0 0 .5rem}
.tp-rd__vorschau-liste{list-style:none;margin:0 0 .6rem;padding:0}
.tp-rd__vorschau-gericht{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.1rem 1rem;padding:.8rem 0;border-top:1px solid var(--rd-haar)}
.tp-rd__vorschau-gericht:first-child{border-top:0}
.tp-rd__vorschau-name{font-weight:600;overflow-wrap:anywhere}
.tp-rd__vorschau-preis{font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}
.tp-rd__vorschau-preis--note{white-space:normal;font-weight:500;color:var(--rd-muted);text-align:right}
.tp-rd__vorschau-text{grid-column:1 / -1;font-size:.9rem;line-height:1.5;color:var(--rd-muted);overflow-wrap:anywhere;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

.tp-rd__mehr{border-top:1px solid var(--rd-linie);padding-top:1.5rem}
.tp-detail a.tp-rd__mehr-link{display:flex;align-items:center;gap:.7rem;min-height:56px;padding:.8rem 1.1rem;border-radius:var(--tp-r,14px);
  background:var(--rd-karte);border:1px solid var(--rd-linie);color:var(--rd-link);font-weight:600}
.tp-detail a.tp-rd__mehr-link:hover{background:var(--rd-flaeche);text-decoration:none}
.tp-rd__mehr-link .tp-ico{color:var(--rd-akzent)}
.tp-rd__mehr-link span:nth-of-type(1){flex:1;min-width:0;overflow-wrap:anywhere}

/* Dein Besuch / Standort */
.tp-rd__besuch,.tp-rd__standort{background:var(--rd-karte);border:1px solid var(--rd-linie);border-radius:var(--tp-r,14px);padding:1.4rem 1.4rem 1.2rem}
.tp-rd__aktionen{display:flex;flex-direction:column;gap:.55rem;margin:0 0 1.2rem}
.tp-rd__zeile{display:flex;gap:.8rem;align-items:flex-start;padding:1rem 0 0;margin:0;border-top:1px solid var(--rd-haar)}
.tp-rd__aktionen + .tp-rd__zeile,.tp-rd__zeile:first-child{border-top:1px solid var(--rd-haar)}
.tp-rd__zeile-ico{display:flex;color:var(--rd-akzent);padding-top:.12rem}
.tp-rd__zeile-ico .tp-ico{width:1.2rem;height:1.2rem}
.tp-rd__zeile-text{min-width:0;font-size:.95rem;line-height:1.5}
.tp-rd__zeile-text p{margin:0}
.tp-rd__zeile-titel{font-family:inherit;font-size:.98rem;font-weight:700;margin:0 0 .2rem;color:var(--rd-text)}
.tp-rd__zeile-titel--klein{margin-top:.8rem;font-size:.9rem}
.tp-rd__zeile + .tp-rd__zeile{margin-top:.2rem}
.tp-rd .tp-open{font-weight:700}
.tp-rd .tp-open--yes{color:#1B7A3A}
.tp-rd .tp-open--no{color:#A8321E}
.tp-rd__standort-ort{display:flex;align-items:center;gap:.5rem;font-weight:600;margin:0 0 .4rem;overflow-wrap:anywhere}
.tp-rd__standort-ort .tp-ico{color:var(--rd-akzent)}

/* ============================== SPEISEKARTE ============================== */
.tp-rd__menu .tp-menu__head{margin:0 0 1.1rem;max-width:none}
.tp-rd__menu .tp-menu__count{color:var(--rd-muted)}
.tp-rd .tp-menus{border-bottom-color:var(--rd-linie)}
.tp-rd .tp-menus__btn.is-active{border-bottom-color:var(--rd-akzent);color:var(--rd-link)}
.tp-rd__menu-layout{grid-template-columns:15rem minmax(0,1fr);gap:1.2rem 2.6rem}
.tp-rd .tp-cats{background:none;border:0;border-radius:0;padding:0}
.tp-rd .tp-cats__title{padding:0 .8rem}
.tp-rd .tp-cats__link{align-items:flex-start;border:0;border-left:3px solid transparent;border-radius:0 8px 8px 0;padding:.7rem .8rem;min-height:44px;
  color:var(--rd-text);font-size:.97rem}
.tp-rd .tp-cats__link:hover{background:var(--rd-flaeche);color:var(--rd-text)}
.tp-rd .tp-cats__link[aria-selected="true"]{background:var(--rd-flaeche);color:var(--rd-link);border-left-color:var(--rd-akzent);font-weight:700}
.tp-rd .tp-cats__link[aria-selected="true"] .tp-cats__n{color:var(--rd-muted)}
.tp-rd .tp-cats__name{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
.tp-rd .tp-menu__main{max-width:none}
.tp-rd .tp-sec__head{align-items:baseline}
.tp-rd .tp-sec__name{font-size:1.6rem;overflow-wrap:anywhere;min-width:0}
.tp-rd .tp-sec__n{color:var(--rd-muted)}

.tp-rd .tp-dishes{margin:.4rem 0 0}
.tp-rd .tp-dish{padding:1.1rem 0;border-top:1px solid var(--rd-linie)}
.tp-rd .tp-dish:first-child{border-top:1px solid var(--rd-linie)}
.tp-rd .tp-dish__line{align-items:flex-start;gap:1.2rem}
.tp-rd .tp-dish__name{min-width:0;font-family:var(--tp-serif);font-size:1.08rem;font-weight:700;overflow-wrap:anywhere}
.tp-rd .tp-dish__price{font-size:1.05rem;flex:0 0 auto}
.tp-rd .tp-dish__price--note{white-space:normal;text-align:right;max-width:45%;font-size:.9rem}
.tp-rd .tp-dish__desc{max-width:40rem;overflow-wrap:anywhere}
.tp-rd .tp-variants{max-width:26rem}
.tp-rd .tp-variant{overflow-wrap:anywhere}
.tp-rd .tp-tag{background:var(--rd-flaeche);color:var(--rd-link);font-size:.78rem;padding:.2rem .6rem}
.tp-rd__hinweis{font-size:.86rem;color:var(--rd-muted);margin:1.4rem 0 0;max-width:40rem}

/* Allergene: <details>, ohne Skript bedienbar; Zustand steht im Text, nicht nur in der Farbe */
.tp-rd-allergene{margin:.55rem 0 0}
.tp-rd-allergene__btn{display:inline-flex;align-items:center;gap:.4rem;min-height:36px;cursor:pointer;font-size:.88rem;font-weight:600;color:var(--rd-link);list-style:none}
.tp-rd-allergene__btn::-webkit-details-marker{display:none}
.tp-rd-allergene__btn::after{content:"⌄";font-size:1rem;line-height:1}
.tp-rd-allergene[open] .tp-rd-allergene__btn::after{content:"⌃"}
.tp-rd-allergene__off{display:none}
.tp-rd-allergene[open] .tp-rd-allergene__on{display:none}
.tp-rd-allergene[open] .tp-rd-allergene__off{display:inline}
.tp-rd-allergene__titel{font-size:.8rem;font-weight:700;color:var(--rd-muted);margin:.5rem 0 .25rem}
.tp-rd-allergene__liste{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.35rem}
.tp-rd .tp-allergen{font-size:.8rem;padding:.2rem .6rem;background:#fff;border:1px solid var(--rd-linie);color:var(--rd-text)}

/* ================================= BILDER ================================ */
.tp-rd__galerie{margin:0}
.tp-rd .tp-galerie__zahl{color:var(--rd-muted)}
.tp-rd .tp-galerie__raster{gap:.75rem}
.tp-rd .tp-galerie__link{border-radius:10px;aspect-ratio:4/3}
.tp-rd .tp-galerie__raster[data-anzahl="1"]{max-width:46rem}
.tp-rd .tp-galerie__link:focus-visible{outline:3px solid var(--rd-fokus);outline-offset:3px}
.tp-rd .tp-galerie__nachweis{color:var(--rd-muted)}
/* Die Skripte der Grossansicht haengen am Dialog im body (tp-galerie.css); Schliessen/Vor/Zurueck haben dort 2,9 rem. */

/* ============================== LAGE & KONTAKT ============================ */
/* Phase 6: einspaltig, ohne Seitenleiste: Adresse und Aktionen kompakt, Karte ueber die ganze Inhaltsbreite, darunter Zeiten und weitere Angaben */
.tp-rd__lage{display:flex;flex-direction:column;gap:1.6rem;align-items:stretch}
.tp-rd__karte{min-width:0;width:100%}
.tp-rd .tp-mapcard{border-color:var(--rd-linie);border-radius:var(--tp-r,14px)}
.tp-rd .tp-mapcard__frame{width:100%;min-height:18rem;aspect-ratio:16/7}
.tp-rd .tp-mapcard__credit{background:var(--rd-karte)}
.tp-rd .tp-mapcard__open{min-height:48px;color:var(--rd-link)}
.tp-rd__kontakt{min-width:0;display:flex;flex-direction:column;gap:1.3rem}
.tp-rd__kontakt:not(:has(*)){display:none}
.tp-rd__kontakt--kopf .tp-rd__block{display:flex;flex-wrap:wrap;align-items:center;gap:.9rem 2.2rem}
.tp-rd__kontakt--kopf .tp-rd__aktionen{flex-direction:row;flex-wrap:wrap;gap:.6rem;margin:0}
.tp-rd__kontakt--kopf .tp-rd-btn{width:auto;flex:0 1 auto}
.tp-rd__kontakt--kopf .tp-paket-hinweis,.tp-rd__kontakt--kopf .tp-rd__paket-hinweis{flex-basis:100%}
.tp-rd__kontakt--rest{padding-top:.2rem}
.tp-rd__kontakt--rest .tp-rd__block{max-width:48rem}
.tp-rd__block{min-width:0}
.tp-rd__block + .tp-rd__block{border-top:1px solid var(--rd-haar);padding-top:1.2rem}
.tp-rd__block .tp-rd__zeile{border-top:0;padding-top:0}
.tp-rd__block .tp-rd__aktionen{margin:1rem 0 0}
.tp-rd__zeiten{list-style:none;margin:.4rem 0 0;padding:0;display:flex;flex-direction:column;gap:.3rem}
.tp-rd__zeiten-zeile{display:grid;grid-template-columns:minmax(6rem,9rem) minmax(0,1fr);gap:.2rem 1rem;font-size:.93rem}
.tp-rd__zeiten-tage{color:var(--rd-muted)}
.tp-rd__zeiten-zeit{font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.tp-rd__zeiten-zeile--zu .tp-rd__zeiten-zeit{color:var(--rd-muted);font-style:italic}
.tp-rd__sonder{list-style:none;margin:.2rem 0 0;padding:0;font-size:.92rem;overflow-wrap:anywhere}
.tp-rd__liste{list-style:none;margin:.3rem 0 .4rem;padding:0;display:flex;flex-direction:column;gap:.3rem;font-size:.93rem}
.tp-rd__liste-zeile{overflow-wrap:anywhere;margin:0;padding:0;line-height:1.5}
.tp-rd__liste-zeile--nein{color:var(--rd-muted)}
.tp-rd__nicht-hinterlegt{margin:0}

/* ============================= BETREIBER ================================== */
.tp-rd__betreiber{margin:3rem 0 0;padding:1.7rem clamp(1.1rem,3vw,2rem);border:1px solid var(--rd-linie);border-radius:var(--tp-r,14px);background:var(--rd-flaeche);
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:1.4rem 2.4rem;align-items:start}
.tp-rd__betreiber-titel{font-family:var(--tp-serif);font-size:1.4rem;font-weight:600;margin:0 0 .25rem}
.tp-rd__betreiber-sub{font-size:1rem;color:var(--rd-muted);margin:0}
.tp-rd__demo{margin:.8rem 0 0;padding:.5rem .7rem;border:1px dashed var(--rd-akzent);border-radius:8px;font-size:.85rem;background:#fff;color:var(--rd-link)}
.tp-rd__betreiber-liste{list-style:none;margin:0 0 1rem;padding:0;display:flex;flex-direction:column;gap:.5rem;font-size:.93rem;line-height:1.55}
.tp-rd__betreiber-wege{display:flex;flex-wrap:wrap;gap:.7rem}
.tp-rd__betreiber-wege .tp-rd-btn{width:auto;flex:1 1 14rem}

/* ============================ MOBILE AKTIONSLEISTE ======================== */
.tp-rd__leiste{display:none}

/* ================================ RESPONSIV =============================== */
@media (max-width:1100px){
  .tp-rd__spalten{grid-template-columns:minmax(0,1fr) 19.5rem}
  .tp-rd__menu-layout{grid-template-columns:13.5rem minmax(0,1fr);gap:1.2rem 1.8rem}
}
@media (max-width:960px){
  .tp-rd__spalten{grid-template-columns:minmax(0,1fr)}
  .tp-rd__betreiber{grid-template-columns:minmax(0,1fr)}
  /* Speisekarte: Bereiche liegend (Bestandsmuster), aktiver Bereich gefuellt */
  .tp-rd__menu-layout{grid-template-columns:minmax(0,1fr)}
  .tp-rd .tp-cats{border-bottom:1px solid var(--rd-linie)}
  .tp-rd .tp-cats__list{flex-direction:row;gap:.5rem;overflow-x:auto;padding:0 0 .85rem;scroll-snap-type:x proximity}
  .tp-rd .tp-cats__item{flex:0 0 auto;scroll-snap-align:start}
  .tp-rd .tp-cats__link{border:1px solid var(--rd-linie);border-radius:999px;background:var(--rd-karte);padding:.5rem 1rem;white-space:normal;max-width:17rem;align-items:center}
  .tp-rd .tp-cats__link[aria-selected="true"]{background:var(--rd-btn);border-color:var(--rd-btn);color:#fff}
  .tp-rd .tp-cats__link[aria-selected="true"] .tp-cats__n{color:rgba(255,255,255,.85)}
}
@media (max-width:700px){
  .tp-rd{padding:.9rem 1rem calc(var(--rd-leiste-h) + 1.4rem + env(safe-area-inset-bottom,0px));border-radius:10px}
  /* Platz unter dem Seitenende, damit die feste Leiste auch den Fuss der Seite nicht verdeckt */
  body:has(.tp-rd__leiste){padding-bottom:calc(4.25rem + env(safe-area-inset-bottom,0px))}
  .tp-rd__crumbs .tp-crumbs__item{display:none}
  .tp-rd__crumbs .tp-crumbs__item:nth-last-child(-n+2){display:flex}
  .tp-rd__crumbs .tp-crumbs__item:nth-last-child(2)::before{content:none}
  .tp-rd__titelzeile{align-items:flex-start}
  .tp-rd .tp-acts{display:flex;gap:.4rem}
  .tp-rd .tp-acts button{min-width:44px;padding:.5rem}
  .tp-rd .tp-acts button span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
  /* Mosaik: ein grosses Bild mit Zaehler-Knopf statt Kachelraster */
  .tp-rd__mosaik,.tp-rd__medien--n2 .tp-rd__mosaik,.tp-rd__medien--n3 .tp-rd__mosaik{display:block;height:auto}
  .tp-rd__kachel{display:none}
  .tp-rd__kachel--gross{display:block;aspect-ratio:4/3}
  .tp-rd .tp-bar.tp-rd__bar{margin-bottom:1.3rem}
  .tp-rd .tp-tabs{width:100%;scrollbar-width:none}
  .tp-rd .tp-tabs::-webkit-scrollbar{display:none}
  .tp-rd .tp-tabs__link{margin-right:1.15rem;font-size:.93rem}
  .tp-rd__besuch .tp-rd__aktionen{margin-bottom:1rem}
  .tp-rd__kontakt--kopf .tp-rd-btn{flex:1 1 100%}
  .tp-rd__zeiten-zeile{grid-template-columns:minmax(0,1fr)}
  .tp-rd .tp-dish__line{gap:.8rem}
  .tp-rd .tp-dish__name{font-size:1rem}
  .tp-rd .tp-sec__name{font-size:1.35rem}
  .tp-rd .tp-mapcard__frame{width:100%;min-height:15rem;aspect-ratio:4/3}
  .tp-rd__betreiber{margin-top:2rem}
  .tp-rd__betreiber-wege .tp-rd-btn{flex-basis:100%}

  .tp-rd__leiste{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--rd-karte);border-top:1px solid var(--rd-linie);
    box-shadow:0 -2px 10px rgba(0,0,0,.08);padding:0 0 env(safe-area-inset-bottom,0px)}
  .tp-rd__leiste-link{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;min-height:var(--rd-leiste-h);
    padding:.45rem .3rem;font-size:.8rem;font-weight:600;text-decoration:none;color:var(--rd-link);text-align:center;line-height:1.2}
  .tp-detail a.tp-rd__leiste-link{color:var(--rd-link)}
  .tp-rd__leiste-link .tp-ico{width:1.45rem;height:1.45rem}
  .tp-rd__leiste-link + .tp-rd__leiste-link{border-left:1px solid var(--rd-haar)}
  .tp-rd__leiste-link:focus-visible{outline-offset:-4px}
}
@media (max-width:420px){
  .tp-rd{padding-left:.85rem;padding-right:.85rem}
  .tp-rd__name{font-size:1.9rem}
  .tp-rd__vorschau-gericht{grid-template-columns:minmax(0,1fr)}
  .tp-rd__vorschau-preis{grid-row:auto}
}
@media (prefers-reduced-motion:reduce){
  .tp-rd *,.tp-rd *::before,.tp-rd *::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}
}

/* ===== Farben des Portaldesigns auf Ueberschriften und Links (das Elementor-Kit setzt sonst eigene Werte im Seiteninhalt) ===== */
/* Hotfix 0.9.94: Die allgemeinen Farbregeln fuer Ueberschriften und Textlinks gelten nicht im Paketdialog (.tp-pkg liegt innerhalb der Detailansicht und bringt
   eigene Farben mit: weisse Ueberschrift auf dunklem Kopf, Knoepfe der Paketkarten). :where() laesst die Spezifitaet der Regeln unveraendert. */
.tp-detail.tp-rd :is(h1,h2,h3):not(:where(.tp-pkg *)){color:var(--rd-text)}
/* Die Ueberschrift des Dialogs hat ihre Farbe in tp-package-chooser.css (.tp-pkg__title: #FFFFFF auf dem dunklen Kopf #1B2F37); die Ueberschriftenregel des Themas
   (z. B. ".entry-content h2", hoehere Spezifitaet als ".tp-pkg__title") hat sie bisher uebersteuert. Hier nur diese eine Farbe wieder auf den Wert des Dialogs. */
.tp-detail.tp-rd .tp-pkg .tp-pkg__title{color:#FFFFFF}
.tp-detail.tp-rd .tp-rd__karte-titel,.tp-detail.tp-rd .tp-rd__betreiber-titel{color:var(--rd-text)}
.tp-detail.tp-rd a:not([class*="tp-rd-btn"]):not(.tp-tabs__link):not(.tp-rd__alle):not(.tp-cats__link):not(.tp-menus__btn):not(.tp-galerie__link):not(.tp-rd__leiste-link):not(:where(.tp-pkg *)){color:var(--rd-link);text-decoration:underline;text-underline-offset:2px}
.tp-detail.tp-rd .tp-rd__weiter,.tp-detail.tp-rd .tp-rd__mehr-link{text-decoration:none}
.tp-rd__betreiber-sub{margin-bottom:.2rem}
.tp-rd__betreiber-liste{margin-bottom:1.1rem}
.tp-rd__betreiber-wege{margin-top:.3rem}

@media (max-width:420px){
  /* Phase 3: mit der echten Seitenschrift (Montserrat, breiter als die Systemschrift) passen die vier Reiter bei 390 px nur so in eine Zeile (Mockup) */
  .tp-rd .tp-tabs__link{font-size:clamp(.66rem,3.2vw,.84rem);margin-right:.5rem}
}

.tp-rd .tp-tabs__link:last-child{margin-right:0}
@media (max-width:360px){
  .tp-rd .tp-tabs__link{font-size:.66rem;margin-right:.45rem}
}

/* Phase 3: Das Portalthema (Astra) unterstreicht Links im Seiteninhalt. Knoepfe, Reiter, Bereichsauswahl und Aktionsleiste sind keine
   Textlinks (Mockup: ohne Unterstreichung); nur Fliesstext-Links behalten sie (Regel oben). */
.tp-detail.tp-rd a.tp-tabs__link,.tp-detail.tp-rd a[class*="tp-rd-btn"],.tp-detail.tp-rd a.tp-rd__alle,.tp-detail.tp-rd a.tp-cats__link,
.tp-detail.tp-rd a.tp-menus__btn,.tp-detail.tp-rd a.tp-galerie__link,.tp-detail.tp-rd a.tp-rd__leiste-link,
.tp-detail.tp-rd a:is(.tp-rd__weiter,.tp-rd__mehr-link),.tp-detail.tp-rd button{text-decoration:none}
.tp-detail.tp-rd a.tp-tabs__link:hover,.tp-detail.tp-rd a.tp-cats__link:hover,.tp-detail.tp-rd a.tp-menus__btn:hover{text-decoration:none}

/* Phase 5: Der Scroll-nach-oben-Knopf des Portalthemas (Astra, unten rechts) ueberdeckte auf dem Telefon Teile der Aktionsflaechen (Anrufen, Route) der
   Detailansicht. Nur in dieser Ansicht und nur dort, wo die feste Aktionsleiste steht (bis 700 px), wird er ausgeblendet: Die Leiste ist die Bedienung unten,
   ein Reiterwechsel springt ohnehin an den Anfang. Alle anderen Seiten (Uebersicht, bisherige Vorlage, Unterkuenfte) und die Detailansicht ab 701 px behalten
   den Knopf unveraendert. Die Regel haengt an der Leiste (.tp-rd__leiste), die nur die neue Detailansicht erzeugt. */
@media (max-width:700px){
  body:has(.tp-rd__leiste) #ast-scroll-top{display:none!important}
}

/* Phase 3: Bilder-Reiter gemaess Mockup auf breiten Bildschirmen dreispaltig (ab 1024 px, ab fünf Bildern; zwei und vier Bilder bleiben bei ihrer Anordnung, damit keine einzelne Kachel allein in einer Zeile steht); darunter bleibt es bei der
   Bestandsregel (zwei Spalten, auf dem Telefon angepasst). Ein oder zwei Bilder behalten ihre eigene Anordnung. */
@media (min-width:1024px){
  .tp-rd .tp-galerie__raster:not([data-anzahl="1"]):not([data-anzahl="2"]):not([data-anzahl="4"]){grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* Phase 6: Montserrat ist breiter als die bisherige Serifenschrift. Auf schmalen Telefonen steht der Name ohne Zeichenbruch mitten im Wort
   (Merken/Teilen darunter statt daneben), und die Reiter umbrechen bei 360 px und darunter in eine zweite Zeile statt am Rand abgeschnitten zu werden. */
@media (max-width:420px){
  .tp-rd__name{font-size:clamp(1.35rem,6.4vw,1.7rem);overflow-wrap:break-word;hyphens:auto}
  .tp-rd__titelzeile{flex-direction:column;align-items:flex-start;gap:.7rem}
}
@media (max-width:360px){
  .tp-rd .tp-tabs{flex-wrap:wrap;overflow-x:visible}
  .tp-rd .tp-tabs__link{margin-right:.9rem}
}
@media (max-width:360px){
  /* Telefon 320 px: Platzhalter untereinander, Betreiber-Ueberschrift ohne Wortbruch */
  .tp-rd__platzhalter{flex-direction:column;align-items:flex-start;gap:.7rem}
  .tp-rd__betreiber-titel{font-size:1.05rem;overflow-wrap:break-word}
}
