/*
Theme Name: Paddenwirt
Theme URI: https://sandbox.berlin-moebel-montage.de/
Author: FOPY – Hausmeisterservice & Objektbetreuung
Description: Schlankes Block-Theme für Zum Paddenwirt im Berliner Nikolaiviertel.
Version: 0.11.9
Requires at least: 6.6
Requires PHP: 8.2
Text Domain: paddenwirt
Update URI: https://github.com/FopyRK/paddenwirt-theme
*/

/*
 * 0.11.9: Paddenwirt-Favicon als Theme-Fallback, solange in WordPress noch
 * kein eigenes Website-Icon hinterlegt ist.
 * 0.11.8: GitHub-Updates werden beim Öffnen der WordPress-Updateansicht
 * sofort ergänzt; der breite Startseiten-Hero ist zentriert ausgerichtet.
 * 0.11.7: Instagram-Link im Desktop-Header größer und als klar erkennbare
 * Messing-Schaltfläche ausgeführt.
 * 0.11.6: GitHub-Release-Updates werden im WordPress-Backend erkannt und
 * können über die native Theme-Aktualisierung installiert werden.
 * 0.11.5: Header nutzt das zentrale WordPress-Website-Logo; die
 * Kategorie-Bilder auf der Startseite sind als gemeinsame Bildserie abgestimmt.
 * 0.9.0: Paddenwirt Display 0.600 mit harmonisierten Versalien.
 * Der Schnitt zitiert den historischen Fassadenschriftzug in den H1 und
 * den abgestimmten H2-Displaytiteln. Wortmarke, Navigation, Buttons und
 * Fließtext bleiben ausdrücklich unverändert.
 * 0.9.2: Social Media aus dem Footer in den Header verlagert (eigener
 * Template-Teil "parts/social-media.html"), Sprachumschalter als Pill
 * statt reinem Textlink.
 * 0.9.3: Finale Font PaddenwirtDisplay 0.601 (P/d/r korrigiert). Speise-/
 * Getraenkekarte: kompakte Sprungnav-Felder statt Pillen/nackten Links,
 * feiner Messing-Kapiteltrenner vor neuen Kategorien, Preise mit
 * tabular-nums, Kennzeichnungen typografisch statt als Badge, Signature-
 * Bereich als gemeinsame helle Empfehlungsebene statt drei Einzelkarten.
 * Gruene Statement-Baelken (align:wide + Flaschengruen) siteweit full-bleed
 * mit auf 720px zentriertem Inhalt. Fix: doppelter "↑ Top"-Link konnte
 * durch das "hidden"-Attribut nicht mehr zuverlaessig ausgeblendet werden.
 * Nur Theme-/Template-Dateien geaendert, keine Inhalte/Preise/Notion-/n8n-
 * Daten angefasst.
 */

*, *::before, *::after { box-sizing: border-box; }
:root { color-scheme: light; }
html { scroll-behavior: smooth; }
body { text-rendering: optimizeLegibility; }
a:focus-visible, button:focus-visible { outline: 3px solid #B18A4A; outline-offset: 3px; }

/*
 * 0.8.8: Standard-CSS für nur für Screenreader sichtbaren Text
 * (".screen-reader-text"). WordPress-Kernblöcke wie core/social-links
 * geben diese Klasse für ihre Beschriftungen aus, WordPress selbst liefert
 * dafür aber keine Frontend-CSS-Regel mit — das ist laut WordPress-
 * Theme-Handbuch Aufgabe des Themes. Ohne diese Regel wäre der
 * Screenreader-Text (z. B. "Instagram-Profil von Zum Paddenwirt") sichtbar
 * im Frontend zu sehen gewesen.
 */
.screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important;
}
.screen-reader-text:focus {
  background-color: #f1f1f1;
  border-radius: 3px;
  box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
  clip: auto !important;
  clip-path: none;
  color: #21759b;
  display: block;
  font-size: 0.875rem;
  font-weight: 700;
  height: auto;
  left: 5px;
  line-height: normal;
  padding: 15px 23px 14px;
  text-decoration: none;
  top: 5px;
  width: auto;
  z-index: 100000;
}

/*
 * 0.8.18: alignfull-Überlauf behoben (48px Desktop / 16px Mobil pro Seite).
 * Ursache: WordPress hängt bei aktivem "useRootPaddingAwareAlignments" die
 * Klasse "has-global-padding" direkt an dasselbe alignfull-Element (Header/
 * Hero/Section/Footer), nicht an einen breiteren Elternwrapper — WordPress'
 * eigene Kernregel ".has-global-padding { padding-left/right: var(...) }"
 * gibt diesem Element dadurch bereits sein Innen-Padding. Die alte,
 * zusätzliche Theme-Regel hat auf demselben Element noch einmal per
 * negativem Margin "gegen ein Eltern-Padding" kompensiert, das dort gar
 * nicht existiert (Eltern sind header/main/footer ohne eigenes Padding) —
 * das Element wurde dadurch beidseitig über den Viewport hinausgeschoben.
 * Kein negatives Margin mehr nötig: alignfull ist ohnehin bereits so breit
 * wie sein Elternelement; das Innen-Padding liefert WordPress' eigene
 * ".has-global-padding"-Regel.
 */
.alignfull {
  width: 100%;
  margin-left: 0;
  margin-right: 0;
}

.wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-close,
.wp-block-button__link { min-height: 44px; min-width: 44px; display: inline-flex; align-items: center; justify-content: center; }
.paddenwirt-desktop-primary .wp-block-button__link { padding-left: 1rem; padding-right: 1rem; }
/*
 * 0.8.12: Footer-Links beruhigt — keine dauerhafte Unterstreichung mehr
 * (wirkte technisch/unruhig). Normalzustand nur Farbe, Unterstreichung erst
 * bei Hover/Fokus, damit sich nichts im Layout verschiebt (kein fetter
 * Rahmen, feine Linie über text-underline-offset). :visited bleibt
 * ausdrücklich in derselben Farbe wie unbesuchte Links (kein Browser-Lila).
 */
.paddenwirt-footer a { color: #CAAF81; text-decoration: none; text-underline-offset: 3px; }
.paddenwirt-footer a:visited { color: #CAAF81; }
.paddenwirt-footer a:hover,
.paddenwirt-footer a:focus-visible { color: #F4EEDF; text-decoration: underline; }
.paddenwirt-footer a:focus-visible { text-decoration-thickness: 1px; }
/* Kontakt-Spalte: E-Mail/Telefon als wichtigste Links heller/prominenter als die übrigen Footer-Links (Messing) */
.paddenwirt-footer-contact a,
.paddenwirt-footer-contact a:visited { color: #F4EEDF; }
/* Button bleibt vom generischen Footer-Link-Stil unberührt (eigene Button-Farben aus theme.json) */
.paddenwirt-footer .wp-block-button__link,
.paddenwirt-footer .wp-block-button__link:visited { color: #F4EEDF; text-decoration: none; }
.paddenwirt-footer .wp-block-button__link:hover { text-decoration: none; }
.paddenwirt-footer-note { color: #CAAF81; margin-top: 0.4rem; }
.paddenwirt-footer .paddenwirt-wordmark,
.paddenwirt-footer .paddenwirt-wordmark a { text-decoration: none; }
.paddenwirt-footer .paddenwirt-wordmark a:hover,
.paddenwirt-footer .paddenwirt-wordmark a:focus-visible { text-decoration: underline; }
.paddenwirt-footer .paddenwirt-wordmark { font-size: 1.3rem; }
.paddenwirt-hero-sub { max-width: 42ch; font-size: 1.15rem; margin-left: 0; margin-right: auto; }
@media (min-width: 782px) { .paddenwirt-hero-sub { font-size: 1.05rem; } }
.paddenwirt-wordmark { font-size: 1.6rem; text-transform: uppercase; letter-spacing: 0.04em; }
/*
 * Gemeinsamer Inhaltscontainer für den Hero (0.2.3).
 * Vorher standen H1, Ornament, Unterzeile und CTA als direkte Kinder eines
 * layout:constrained-Blocks, der jedes Kind EINZELN auf 720px zentriert.
 * Die Überschrift hatte zusätzlich max-width:100% (für Mobile), wodurch sie
 * auf breiten Screens aus dieser Zentrierung ausbrach und am linken
 * Viewportrand begann, während die übrigen Elemente mittig standen. Jetzt
 * teilen sich alle vier Elemente einen einzigen Container mit fester
 * max-width statt vier unabhängig zentrierter Boxen.
 */
.paddenwirt-hero-inner { max-width: 1120px; margin-left: auto; margin-right: auto; }
.paddenwirt-hero-title { font-size: clamp(2.5rem, 4vw, 3rem); max-width: 100%; }
.paddenwirt-hero-ornament { width: 120px; height: 14px; margin: 0.25rem auto 1.25rem 0; background: url("assets/icons/ornament-linie.svg") no-repeat center / contain; }
.paddenwirt-seal { width: 72px; height: 72px; margin-bottom: 0.5rem; background: url("assets/icons/siegel-padde.svg") no-repeat center / contain; }
/*
 * Arbeitspaket 5 (0.7.0): Kontrast-Fix.
 * Das Messing #B18A4A erreicht als Text weder auf Elfenbein (2.75:1) noch als
 * Footer-Link auf Flaschengrün (3.92:1) WCAG-AA (4.5:1 für normalen Text).
 * Dekorative Verwendungen (Rahmenlinien, SVG-Ornament/Siegel, Fokusring)
 * bleiben #B18A4A, da dafür kein Textkontrast-Grenzwert gilt. Für Text auf
 * hellem Grund ein abgeleitetes dunkles Messing (7.38:1), für Text auf
 * dunklem Grund ein abgeleitetes helles Messing (5.91:1, siehe oben).
 */
.paddenwirt-tbd { color: #5E4927; font-style: italic; }

/*
 * 0.8.18: Bildüberlauf behoben.
 * WordPress' Kern-CSS setzt bereits ".wp-block-image img { max-width:100% }"
 * — das greift hier aber nicht, weil der EDITOR beim Größenziehen ein
 * festes Pixel-Inline-Style ("style=width:430px") sowohl auf <img> als auch
 * auf das umgebende <figure class="wp-block-image"> schreibt. Das <img>
 * bleibt dadurch korrekt auf 100% seines Elternelements begrenzt — nur
 * dieses Elternelement (die Figure) hatte selbst keine max-width-Regel und
 * blieb starr bei 430px, unabhängig von der Spaltenbreite. max-width:100%
 * auf .wp-block-image (trifft die Figure) schlägt ein etwaiges Pixel-Inline-
 * Width unabhängig von dessen Spezifität, weil beide Eigenschaften
 * zusammenwirken statt zu konkurrieren.
 */
.wp-block-image { max-width: 100%; }

/*
 * Arbeitspaket 1 (0.3.2): Startseite verfeinern.
 * Abschnitte werden über eine feine Trennlinie (kein Kartenhintergrund, kein
 * Schatten) unterschieden. "Auf einen Blick" und "Besuch" nutzen dieselbe
 * schlanke Zeilen-Struktur (Label links, Wert rechts, feine Trennlinie
 * dazwischen) fuer bessere Scanbarkeit. Die drei Karten-Einstiege bekommen
 * einen zurückhaltenden Rahmen, um als gleichwertige Flächen erkennbar zu
 * sein, ohne eine "Kartenwand" zu erzeugen.
 */
.paddenwirt-section { border-top: 1px solid #DED8CC; }

.paddenwirt-infoline { padding: 0.6rem 0; border-bottom: 1px solid #DED8CC; align-items: baseline; }
.paddenwirt-infoline:last-child { border-bottom: none; }
.paddenwirt-infoline p { margin: 0; }

.paddenwirt-menu-entry { border: 1px solid #DED8CC; border-radius: 4px; padding: 1.5rem; text-align: center; height: 100%; }
.paddenwirt-menu-entry h3 { margin-top: 0; }
.paddenwirt-menu-entry p:last-child { margin-bottom: 0; }

/*
 * 0.8.15: Karten "Speisen und Getränke" gleich hoch.
 * .wp-block-column streckt bereits per Kern-CSS auf die Höhe der höchsten
 * Spalte (Columns-Block ist standardmäßig align-items:stretch) — dadurch
 * ist .paddenwirt-menu-entry bereits gleich hoch (height:100%). Was fehlte:
 * die Karte selbst war kein Flex-Container, daher stand der Button direkt
 * unter dem letzten Textabsatz statt auf einer gemeinsamen Linie. Jetzt
 * schiebt margin-top:auto am Buttonbereich diesen an den unteren Rand.
 * Feste min-height nur auf den Button (nicht auf die Karte), damit ein-,
 * zwei- und dreizeilige Buttontexte (z. B. "Speisekarte ansehen" vs.
 * "Getränkekarte ansehen") gleich hoch bleiben und sauber zentriert
 * umbrechen; auf Mobil (Spalten stapeln untereinander) bleibt height:100%
 * wirkungslos, es entsteht also keine erzwungene Mindesthöhe.
 */
.paddenwirt-menu-entry { display: flex; flex-direction: column; }
.paddenwirt-menu-entry .wp-block-buttons { margin-top: auto; padding-top: 1.5rem; }
.paddenwirt-menu-entry .wp-block-button { width: 100%; display: flex; justify-content: center; }
.paddenwirt-menu-entry .wp-block-button__link {
  width: 100%;
  max-width: 220px;
  min-height: 64px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  white-space: normal;
  line-height: 1.25;
}

/*
 * 0.8.15: Wide-Layout für nachfolgende Startseiten-Hauptabschnitte geprüft.
 * .paddenwirt-section setzt bewusst nur eine Trennlinie, keine Breite;
 * .alignwide/.alignfull kommen unverändert aus dem WordPress-Kern
 * (theme.json wideSize:1120px, useRootPaddingAwareAlignments) und
 * funktionieren bereits innerhalb eines layout:constrained-Elternblocks —
 * genau wie im "Auf einen Blick"-Abschnitt. Keine themeeigene Regel engt
 * .alignwide zusätzlich ein, daher hier keine zusätzliche CSS-Regel nötig.
 * Der Karten-Einstieg (patterns/karteneinstieg.php) bekommt jetzt ebenfalls
 * {"align":"wide"}, damit er optisch dieselbe maximale Breite nutzt wie
 * "Auf einen Blick" statt der schmaleren 720px-Standardbreite.
 */

/*
 * 0.8.15: Bildplatzhalter für den Editor, solange echte Fotos fehlen
 * (siehe CONTENT-MISSING.md). Rahmen/Radius wie .paddenwirt-menu-entry,
 * Hintergrund Steingrau aus dem bestehenden Farbsystem — bewusst kein
 * Schraffur-/Fehlermuster, damit es nicht wie ein kaputtes Bild wirkt.
 * aspect-ratio statt padding-bottom-Trick: im Zielumfeld (aktuelles
 * WordPress, moderne Browser) ausreichend unterstützt und einfacher lesbar.
 * Lässt sich später 1:1 durch einen normalen core/image-Block ersetzen.
 */
.paddenwirt-image-placeholder {
  aspect-ratio: 4 / 3;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 0.35rem;
  background: #DED8CC;
  border: 1px solid #B18A4A;
  border-radius: 4px;
  padding: 1.5rem;
}
.paddenwirt-image-placeholder__label { margin: 0; font-weight: 700; color: #5E4927; }
.paddenwirt-image-placeholder__caption { margin: 0; font-size: 0.8rem; color: #635A4E; }

/*
 * 0.8.14: Reservierungs-CTAs im Theme auf den neuen Ablauf umgestellt
 * (Formular statt „nur telefonisch“, siehe CLAUDE.md-Auftrag). Betroffen
 * ausschließlich Header/Footer (Theme-Templates) sowie Patterns, die nur
 * für künftige Einfügungen dienen — keine bestehenden Seiteninhalte
 * verändert. CTA-Ziel: /besuch/#reservierung, Beschriftung „Tisch
 * anfragen“; „Anrufen“/Telefon bleibt als zweiter Kontaktweg bestehen.
 */

/*
 * 0.8.13: "Auf einen Blick" redaktionell statt tabellarisch.
 * Vorher: eine volle Zeilenliste (Label/Wert), wirkte wie eine technische
 * Tabelle. Jetzt: zweispaltige Komposition (Bild links ~58%, Infofläche
 * rechts ~42%) im selben nativen align:wide/1120px-Container wie
 * Header/Hero/Footer (keine 100vw-Technik, keine feste Höhe). WordPress'
 * eigener Columns-Block stapelt bereits unterhalb 782px automatisch
 * (Kern-CSS-Breakpoint 781px) — deckt sich exakt mit dem hier verlangten
 * Mobil-Umbruch, keine eigene Media Query fuer die Spaltenreihenfolge
 * nötig (Bild steht im Markup bereits vor der Infofläche).
 * Bildblock ist ein normaler nativer core/image (aspectRatio 4/3, scale
 * cover statt eigener CSS-Zuschnittslogik) — ohne Bilddatei ausgeliefert,
 * da keine brauchbare Aufnahme vorliegt (kein Stockfoto, siehe
 * CONTENT-MISSING.md); der voreingestellte Alt-Text ist bereits im
 * Block-Attribut hinterlegt und erscheint automatisch, sobald im Editor
 * ein Bild hochgeladen wird.
 */
.paddenwirt-blick-foto { border: 1px solid #B18A4A; }
.paddenwirt-blick-foto img { display: block; width: 100%; }

.paddenwirt-infobox { background: #DED8CC; border-left: 3px solid #B18A4A; padding: 1.75rem clamp(1.25rem, 3vw, 2rem); }
.paddenwirt-infobox .wp-block-heading { margin-top: 0; }

.paddenwirt-blick-zeile { padding: 0.55rem 0; border-bottom: 1px solid rgba(39, 37, 33, 0.15); align-items: baseline; flex-wrap: wrap; }
.paddenwirt-blick-zeile p { margin: 0; }
.paddenwirt-blick-zeile--letzte { border-bottom: none; }

/* Telefon/Route innerhalb der Infofläche: keine dauerhafte starke Unterstreichung, Unterstreichung erst bei Hover/Fokus (globaler Fokusring bleibt unveraendert). */
.paddenwirt-infobox a { text-decoration: none; }
.paddenwirt-infobox a:hover,
.paddenwirt-infobox a:focus-visible { text-decoration: underline; }

.paddenwirt-blick-buttons { margin-top: 1.5rem; }
.paddenwirt-blick-buttons .wp-block-button__link.is-style-outline,
.paddenwirt-blick-buttons .is-style-outline .wp-block-button__link { text-decoration: none; }

@media (max-width: 781px) {
  .paddenwirt-infobox { margin-top: 1.75rem; }
}

/*
 * Arbeitspaket 4 (0.6.0): Navigation.
 * Der Hamburger war seit 0.2.2 mobil ausgeblendet, weil das Menü leer war.
 * Jetzt enthält es echte, relative Links (Speisekarte, Saisonales, Unser
 * Haus, Besuch, mit Getränkekarte als Untermenü von Speisekarte) und wird
 * daher wieder eingeblendet. Jeder Navigationslink bekommt ein 44px
 * Mindest-Touch-Ziel; der Fokusring kommt weiterhin aus der globalen Regel
 * oben (a:focus-visible).
 */
.wp-block-navigation-item > a,
.wp-block-navigation-item > button { min-height: 44px; display: flex; align-items: center; }
.wp-block-navigation__submenu-container .wp-block-navigation-item > a,
.wp-block-navigation__submenu-container .wp-block-navigation-item > button { min-height: 44px; }

/* Mobile Korrekturen 0.2.2 */
@media (max-width: 599px) {
  .paddenwirt-hero,
  .paddenwirt-footer { padding-left: 24px; padding-right: 24px; }
  .paddenwirt-hero-title { font-size: 2.3rem; line-height: 1.05; max-width: 100%; }
  .paddenwirt-hero .wp-block-buttons,
  .paddenwirt-hero .wp-block-button,
  .paddenwirt-hero .wp-block-button__link { width: 100%; }
}

/*
 * Speisekarte 0.8.1: echte Wirtshaus-Speisekarte statt Textseite.
 * Zweispaltigkeit auf Desktop nutzt WordPress' natives align:wide
 * (theme.json wideSize:1120px) statt einer eigenen Breitenlogik — dieselbe
 * scrollbar-sichere Technik, die schon für alignfull gilt. Gerichte werden
 * per CSS-Mehrspalten-Layout (column-count) angeordnet; break-inside:avoid
 * verhindert sowohl auf dem Bildschirm als auch im Druck, dass ein Gericht
 * mitten durchgeschnitten wird. Alle Farben sind dieselben AA-geprüften
 * Werte wie beim Kontrast-Fix in 0.7.0 (kein neues Farbschema).
 */
.paddenwirt-eyebrow { display: block; font-size: 0.8rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: #5E4927; margin-bottom: 0.5rem; }

.paddenwirt-notice { border-left: 4px solid #B18A4A; background: #DED8CC; color: #272521; border-radius: 4px; padding: 1rem 1.25rem; margin-top: 1.5rem; margin-bottom: 2rem; }
.paddenwirt-notice p { margin: 0; }

.paddenwirt-kategorie-titel { margin-top: 3rem; margin-bottom: 0.25rem; }
.paddenwirt-kategorie-unterzeile { font-style: italic; color: #5E4927; margin-top: 0; margin-bottom: 1.5rem; }
.paddenwirt-kategorie-titel--hervorgehoben { font-size: clamp(1.7rem, 3vw, 2.1rem); border-bottom: 2px solid #7A302B; display: inline-block; padding-bottom: 0.3rem; }

/*
 * 0.9.3: Kapiteltrenner vor neuen Kategorien (Speise- und Getränkekarte,
 * dynamisch über das Menü-Sync-Plugin gerendert: ".paddenwirt-menu__category").
 * Kein zusätzlicher Kasten — nur mehr Abstand plus eine feine Messinglinie
 * über der Kategorie. Bei der ersten Kategorie entfällt die Linie, damit sie
 * nicht direkt unter dem grünen Intro-Balken schwebt.
 */
.paddenwirt-menu__category {
  padding-top: clamp(1.5rem, 3vw, 2.5rem);
  border-top: 1px solid rgba(177, 138, 74, 0.4);
}
.paddenwirt-menu__category:first-of-type {
  padding-top: 0;
  border-top: none;
}

@media (min-width: 900px) {
  .paddenwirt-gerichte { column-count: 2; column-gap: 3rem; }
}

.menu-item { break-inside: avoid; padding: 0.9rem 0; border-bottom: 1px solid #DED8CC; }
.menu-item:last-child { border-bottom: none; }
.paddenwirt-gericht-beschreibung { color: #635A4E; }
.paddenwirt-kennzeichnung { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.05em; color: #5E4927; margin-left: 0.4rem; }

/*
 * 0.8.3: Layout-Fix Gerichtszeile (Name/Kennzeichnung + Preis).
 * Live beobachtet bei "Hausgemachte Sülze" + Kennzeichnung "HAUSGEMACHT":
 * Name+Kennzeichnung stehen in einem Absatz zusammen mit dem Preis in einer
 * flex-wrap:wrap-Zeile. Wurde der erste Absatz zu lang, brach die GESAMTE
 * Zeile um und der Preis rutschte darunter. Fix: Die Zeile bricht nicht mehr
 * um (nowrap) — der Name-Absatz darf intern beliebig umbrechen (min-width:0,
 * flex:1), der Preis bleibt als eigenes, nicht schrumpfendes Flex-Item mit
 * white-space:nowrap immer oben rechts stehen. Keine absolute Positionierung.
 * !important überschreibt gezielt WordPress' eigenes flex-wrap:wrap aus dem
 * Block-Layout-Attribut (justifyContent/flexWrap), dessen Selektor sonst
 * gleich oder höher spezifisch wäre.
 */
.menu-item > .wp-block-group {
  flex-wrap: nowrap !important;
  align-items: flex-start !important;
}
.menu-item > .wp-block-group > p:first-child {
  flex: 1 1 auto;
  min-width: 0;
}
.menu-item > .wp-block-group > p:last-child {
  flex: 0 0 auto;
  white-space: nowrap;
  margin-left: 0.75rem;
}

/*
 * 0.8.4: Getränkekarte — Varianten und Sprungnavigation.
 * Getränke mit mehreren Gebinden (z. B. "0,3 l / 0,5 l") bekommen keine
 * Preiszeile rechts, sondern Name auf eigener Zeile + eine kompakte,
 * mittig getrennte Varianten-Zeile darunter (kein Tabellen-Grid).
 */
.paddenwirt-varianten { margin-top: 0.2rem !important; font-size: 0.95rem; }
/*
 * 0.9.3: Kategorie-Sprungnavigation vereinheitlicht (Speise- und
 * Getränkekarte nutzen dieselbe Klasse ".paddenwirt-sprungnav").
 * Bisher reine unterstrichene Textlinks, alternativ kennt das
 * Menü-Sync-Plugin überdimensionierte Pillen (border-radius:999px) — beides
 * ausdrücklich nicht gewünscht. Stattdessen kompakte, leicht eckige Felder
 * mit dezentem Rahmen, ruhigem Hover/Fokus. Desktop als gleichmäßiges
 * Raster (auto-fit), ab ca. 1024px reduziert, mobil zweispaltig, sonst eine
 * Spalte — kein horizontaler Überlauf durch feste Spaltenbreiten (1fr).
 */
.paddenwirt-sprungnav {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr));
  gap: 0.5rem;
  margin: 1.5rem 0 2rem;
  font-size: 0.9rem;
}
/*
 * 0.9.3-fix3: Gemeinsame Basisregel fuer die Feld-Optik, jetzt auch fuer die
 * Getraenkekarten-Sprungnav (".paddenwirt-menu-nav__link", vom Menue-Sync-
 * Plugin selbst gerendert - Markup/Anker/Kategorien unveraendert). Bisher
 * dort variabel breite Pillen (Plugin-Default: border-radius:999px,
 * Fuellfarbe) statt derselben ruhigen Flaeche wie auf der Speisekarte.
 * Speisekarte selbst optisch unveraendert, da dieselben Werte schon zuvor
 * dort galten.
 */
.paddenwirt-sprungnav a,
.paddenwirt-menu-nav__link {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0.5rem 0.75rem;
  border: 1px solid #DED8CC;
  border-radius: 4px;
  background: none;
  color: #25382F;
  text-decoration: none;
  text-align: center;
  white-space: normal;
  overflow-wrap: break-word;
}
.paddenwirt-menu-nav__link {
  font-size: 0.9rem;
  line-height: 1.3;
}
.paddenwirt-sprungnav a:hover,
.paddenwirt-menu-nav__link:hover {
  border-color: #B18A4A;
  background: rgba(177, 138, 74, 0.08);
}
.paddenwirt-sprungnav a:focus-visible,
.paddenwirt-menu-nav__link:focus-visible {
  outline: 2px solid #25382F;
  outline-offset: 2px;
}
@media (max-width: 1099px) and (min-width: 600px) {
  .paddenwirt-sprungnav { grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr)); }
}
@media (max-width: 599px) {
  .paddenwirt-sprungnav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/*
 * 0.9.3-fix3: Getraenkekarten-Sprungnav (".paddenwirt-menu-nav__list", 13
 * teils lange Kategorienamen) auf ein geordnetes Raster mit fester
 * Spaltenzahl statt variabler Chip-Breiten umgestellt - eigene Grid-Regel
 * statt der Speisekarte-Regel (auto-fit), da die Speisekarte damit bereits
 * gut aussieht und unveraendert bleiben soll. Feld-Optik kommt aus der
 * gemeinsamen Basisregel oben. 4 Spalten ab 1200px, 3 Spalten zwischen
 * 600-1199px, 2 Spalten mobil (deckt 1440/1024/390px-QA-Punkte ab).
 */
.paddenwirt-menu-nav__list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.5rem;
}
.paddenwirt-menu-nav__item {
  margin: 0;
}
@media (min-width: 1200px) {
  .paddenwirt-menu-nav__list {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
@media (max-width: 599px) {
  .paddenwirt-menu-nav__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/*
 * 0.8.5: Startseite/Unser Haus als pflegbarer Seiteninhalt.
 * Hero + Abschnitte kamen bisher fest aus front-page.html — jetzt in einem
 * einmaligen Pattern, front-page.html enthält nur noch post-content.
 */
.paddenwirt-pullquote {
  font-family: var(--wp--preset--font-family--display, Georgia, 'Times New Roman', serif);
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-style: italic;
  color: #7A302B;
  line-height: 1.3;
  margin: 2rem 0;
}
/*
 * 0.8.7: Herbstkarte mobil — die rote Aussage war auf schmalen Screens zu
 * groß (clamp() erreichte dort nahezu die Desktop-Größe). Auf Mobil etwas
 * zurückgenommen, Desktop-Größe (clamp oben) bleibt unverändert.
 */
@media (max-width: 599px) {
  .paddenwirt-pullquote { font-size: 1.5rem; line-height: 1.25; }
}

/*
 * 0.8.6: Desktop-Header neu geordnet.
 * Zeile lag bisher in einer 720px-constrained-Box (schmaler als Hero/
 * Gerichte-Raster, die beide align:wide/1120px nutzen) — dadurch wirkten
 * Navigation und Aktionsbutton gedrängt. Jetzt derselbe 1120px-Container wie
 * die übrige Website (natives align:wide, keine 100vw-Technik). Der rechte
 * Wrapper nimmt den restlichen Platz ein und schiebt seinen Inhalt an den
 * rechten Rand; ein eigener Abstand zwischen Navigation und Aktionsbutton
 * (nicht zwischen den Nav-Punkten selbst) sorgt dafür, dass der Button nicht
 * direkt an "Besuch" klebt. Keine feste Höhe irgendwo gesetzt.
 */
.paddenwirt-header-row { align-items: center; }

/*
 * Responsive-Audit: verbindlicher Desktop-Breakpoint oberhalb 1100px,
 * unabhängig von
 * WordPress' eigenem Umschaltpunkt.
 * WordPress' Navigation-Block klappt intern schon ab 600px ($break-small,
 * fest im Core, nicht konfigurierbar) vom Hamburger auf die Inline-Liste um.
 * Diese Site zeigt die Desktop-Navigation samt hervorgehobenem
 * Aktionsbutton. Bei 1024px passt die vollständige
 * Desktopzeile mit Social Icon, Sprachwahl und CTA nicht ohne Überlauf.
 * Die Regeln unten erzwingen den Overlay-Wechsel deshalb bis 1100px — eng
 * begrenzt auf die
 * tatsächlich von WordPress erzeugten Klassen des Navigation-Blocks
 * (.wp-block-navigation__responsive-container[-open], .is-menu-open,
 * .has-modal-open), nicht auf Linktexte oder deren Reihenfolge angewiesen.
 * !important ist hier nötig, weil dieselben Klassen bereits Kern-CSS mit
 * einem anderen Breakpoint tragen.
 */
@media (min-width: 1101px) {
  .paddenwirt-header-right { flex: 1 1 auto; justify-content: flex-end; align-items: center; }
  .paddenwirt-header-right .wp-block-navigation { margin-right: 1.25rem; }
  .paddenwirt-header-right .wp-block-navigation .wp-block-navigation__responsive-container-open {
    display: none !important;
  }
  .paddenwirt-header-right .wp-block-navigation .wp-block-navigation__responsive-container {
    display: flex !important;
  }
  /*
   * WordPress' Kern-CSS vergibt jedem Navigationslink 0.5em/1em Innenabstand,
   * sobald der Navigation-Block irgendeine Hintergrundfarbe trägt
   * (":where(.wp-block-navigation.has-background ...)") — ausgelöst durch
   * "overlayBackgroundColor" oben, obwohl das nur für das mobile Overlay
   * gedacht war. Der Selektor nutzt ":where()" (Spezifität 0) und wird
   * dadurch von jeder einzelnen Klasse hier geschlagen. Ohne diese
   * Korrektur wurde die Desktop-Navigation bei 782–900px durch den
   * zusätzlichen Innenabstand unnötig breit und brach in eine zweite Zeile
   * um (live beobachtet mit der historischen Wortmarke aus 0.8.7).
   */
  .paddenwirt-header-right .wp-block-navigation-item > a.wp-block-navigation-item__content {
    padding: 0.5em 0.6em;
  }
}
/*
 * Bei 1024px wird nun bewusst das bereits vorhandene Overlay verwendet;
 * ab 1101px bleibt die freigegebene Desktop-Navigation unverändert.
 */
@media (max-width: 1100px) {
  .paddenwirt-header-right .wp-block-navigation .wp-block-navigation__responsive-container:not(.is-menu-open) {
    display: none !important;
  }
  .paddenwirt-header-right .wp-block-navigation .wp-block-navigation__responsive-container-open {
    display: flex !important;
  }
}
/*
 * Hamburger nie gleichzeitig mit dem geöffneten Menü zeigen. WordPress setzt
 * die Klasse "has-modal-open" beim Öffnen auf <html> (nicht auf den
 * Navigation-Block selbst) — hier entsprechend darüber angesprochen.
 */
html.has-modal-open .paddenwirt-header-right .wp-block-navigation__responsive-container-open {
  display: none !important;
}

/*
 * 0.8.6: Dropdown "Speisekarte" im Marken-Look statt Browser-Standard-Weiß.
 * 0.8.7: Live bei WordPress beobachtet: "Getränkekarte" blieb schwarz, weil
 * WordPress dem Link-Element unter Umständen eine eigene Linkfarbe/Inline-
 * Formatierung mitgibt, die eine reine Klassenregel ohne !important nicht
 * zuverlässig schlägt. Farbe deshalb eng auf die Dropdown-Selektoren
 * begrenzt mit !important erzwungen (nicht global) — inklusive der inneren
 * span-Elemente, in denen WordPress den Linktext ausgibt.
 */
.wp-block-navigation__submenu-container {
  background-color: #25382F !important;
  border: 1px solid #B18A4A;
  border-radius: 4px;
  min-width: 220px;
  padding: 0.4rem;
  margin-top: 0.4rem;
  box-shadow: 0 6px 18px rgba(39, 37, 33, 0.2);
}
.wp-block-navigation__submenu-container .wp-block-navigation-item__content,
.wp-block-navigation__submenu-container .wp-block-navigation-item__content span {
  color: #F4EEDF !important;
}
.wp-block-navigation__submenu-container .wp-block-navigation-item__content {
  border-radius: 3px;
  border-left: 3px solid transparent;
  padding-left: calc(0.75rem - 3px);
}
.wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus-visible,
.wp-block-navigation__submenu-container .wp-block-navigation-item.current-menu-item .wp-block-navigation-item__content {
  background-color: #7A302B;
  border-left-color: #B18A4A;
}
.wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover span,
.wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus-visible span,
.wp-block-navigation__submenu-container .wp-block-navigation-item.current-menu-item .wp-block-navigation-item__content span {
  color: #F4EEDF !important;
}
.wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus-visible {
  outline: 3px solid #B18A4A;
  outline-offset: -3px;
}
.wp-block-navigation__submenu-icon svg { fill: currentColor; }
/*
 * 0.8.7: Defensiver Reset für den Untermenü-Klapp-Button ("Speisekarte ⌄").
 * Ohne diesen Reset kann der native Browser-Button-Rahmen/-Hintergrund
 * durchscheinen (abhängig davon, ob WordPress diesem Button dieselbe Klasse
 * wie den übrigen Navigationslinks mitgibt) — sichtbar als graue Box statt
 * eines schlichten Pfeils, kostet unnötig Breite in der Navigation.
 */
.wp-block-navigation .wp-block-navigation-submenu__toggle {
  background: transparent;
  border: none;
  padding: 0;
  margin: 0;
  font: inherit;
  color: inherit;
}

/*
 * 0.8.7: Mobiles Overlay-Menü — komplette Neugestaltung.
 * Vorher: WordPress' Standard-Vollbildmenü (weiß, rechtsbündig, riesige
 * Abstände). Jetzt: Flaschengrün/Elfenbein im Markenlook, linksbündige
 * Links, kompakter gemeinsamer Innenabstand (24–32px), Schließen-Button
 * oben rechts in Elfenbein.
 * !important durchgängig nötig: WordPress' eigenes Kern-CSS für den
 * geöffneten Zustand (block-library/navigation, Selektoren wie
 * ".is-menu-open:where(:not(.disable-default-overlay)) ... -content ...")
 * setzt für exakt dieselben Eigenschaften (Innenabstand über
 * clamp()/calc(), rechtsbündige Ausrichtung über die CSS-Variable
 * --navigation-layout-justification-setting, Weiß/Schwarz-Fallbackfarben)
 * eigene Regeln mit gleicher oder höherer Selektor-Spezifität als die
 * hier eng auf ".wp-block-navigation__responsive-container.is-menu-open"
 * begrenzten Regeln — ohne !important würde WordPress' Standard-Look
 * (u. a. die rechtsbündigen Links) bestehen bleiben.
 */
.wp-block-navigation__responsive-container.is-menu-open {
  background-color: #25382F !important;
  overflow: auto visible !important;
}
.wp-block-navigation__responsive-dialog { overflow-x: visible; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
  padding: 28px !important;
  overflow-x: visible !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
  align-items: flex-start !important;
  gap: 0.2rem !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content span {
  color: #F4EEDF !important;
  align-items: flex-start !important;
  width: 100% !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
  justify-content: flex-start !important;
  padding: 0.6rem 0 !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
  color: #F4EEDF !important;
  position: absolute;
  top: 20px;
  right: 20px;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close svg {
  fill: #F4EEDF;
}
/* Getränkekarte-Untermenü im offenen Overlay: eingerückter Unterpunkt statt Desktop-Dropdown-Box. */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
  background-color: transparent !important;
  border: none !important;
  border-left: 2px solid #B18A4A !important;
  box-shadow: none !important;
  min-width: 0 !important;
  margin-top: 0.2rem !important;
  margin-left: 0.9rem !important;
  padding: 0.2rem 0 0.2rem 0.9rem !important;
  position: static !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
  font-size: 0.9rem !important;
  padding: 0.45rem 0 !important;
}

/*
 * 0.8.17: Das Formular ist der bevorzugte Reservierungsweg. Deshalb ist
 * „Tisch anfragen“ im mobilen Menü und als Desktop-Button hervorgehoben.
 * „Anrufen“ bleibt als normaler Navigationslink sichtbar und damit gut
 * erreichbar, wirkt aber bewusst nachgeordnet.
 * !important beim Ausblenden nötig: WordPress' Kern-CSS setzt
 * ".wp-block-navigation .wp-block-navigation-item { display: flex }" mit
 * zwei Klassen Spezifität — höher als die einzelne Klasse
 * ".paddenwirt-mobile-primary" allein, die sonst nicht zuverlässig gewinnt.
 */
@media (min-width: 1101px) {
  .paddenwirt-mobile-primary,
  .paddenwirt-mobile-only { display: none !important; }
}
@media (max-width: 1100px) {
  .paddenwirt-desktop-primary { display: none !important; }
  .paddenwirt-desktop-social { display: none !important; }
  /*
   * justify-content/padding hier mit !important: das offene Overlay-Menü
   * setzt weiter oben (.is-menu-open .wp-block-navigation-item__content)
   * bereits justify-content:flex-start und padding:0 auf ALLE Einträge,
   * mit höherer Selektor-Spezifität als ".paddenwirt-mobile-primary a" allein
   * — ohne !important würde der hervorgehobene Button-Look hier verpuffen.
   */
  .paddenwirt-mobile-primary a {
    background-color: #7A302B;
    color: #F4EEDF !important;
    border-radius: 4px;
    font-weight: 650;
    justify-content: center !important;
    padding: 0.85rem 1rem !important;
    margin-top: 0.75rem;
  }
  .paddenwirt-mobile-primary a span { color: #F4EEDF !important; }
}

/*
 * 0.8.6: Footer vollständig neu — kompakte 3-Spalten-Zeile statt langer
 * einspaltiger Linkliste, im selben 1120px-Container wie der Header.
 */
.paddenwirt-footer-grid { gap: 1.75rem 3rem; align-items: flex-start; margin-bottom: 1.5rem; }
.paddenwirt-footer-col { flex: 1 1 200px; min-width: 180px; }
.paddenwirt-footer-col p { margin: 0 0 0.4rem; }
.paddenwirt-footer-col .paddenwirt-seal { width: 48px; height: 48px; margin-bottom: 0.5rem; }
.paddenwirt-footer-col .paddenwirt-wordmark { font-size: 1.15rem; }
.paddenwirt-footer-heading { color: #CAAF81; text-transform: uppercase; letter-spacing: 0.06em; font-size: 0.8rem; font-weight: 700; margin: 0 0 0.6rem; }
/*
 * 0.8.12: "Entdecken" bewusst kleiner/ruhiger als die Kontakt-Spalte
 * (E-Mail/Telefon/Button) — zweite optische Ebene statt gleichrangiger
 * Linkliste. Weiterhin zwei Spalten auf Desktop, mobil einspaltig genug
 * Platz für 44px-Touchziele (Padding statt kleinerer Zeilenhöhe).
 */
.paddenwirt-footer-links-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1.25rem; row-gap: 0.15rem; font-size: 0.85rem; }
.paddenwirt-footer-links-grid p { line-height: 1.5; }
.paddenwirt-footer-links-grid a { display: inline-block; padding: 0.4rem 0; }
@media (max-width: 480px) { .paddenwirt-footer-links-grid { grid-template-columns: 1fr; } }
/* 0.8.12: Kontakt-Spalte kompakter oben ausgerichtet, Button/Hinweis/Folgen ohne unnötige Zusatzhöhe */
.paddenwirt-footer-contact p { margin: 0 0 0.3rem; }
.paddenwirt-footer .wp-block-buttons { margin-bottom: 0; }
.paddenwirt-footer-note { font-size: 0.8rem; line-height: 1.4; max-width: 32ch; }
.paddenwirt-footer-bottom { border-top: 1px solid rgba(244, 238, 223, 0.18); padding-top: 0.9rem; font-size: 0.8rem; gap: 0.5rem 1.5rem; align-items: center; }
.paddenwirt-footer-bottom p { margin: 0; color: #CAAF81; }
.paddenwirt-footer-bottom-links { gap: 1rem; }
.paddenwirt-footer-bottom-links a { display: inline-block; padding: 0.4rem 0; }

/*
 * 0.8.18: Trefferhöhe mindestens 44px für tel-/mailto-Links und Footer-
 * Navigation (bislang 122×17px bzw. 146×17px). Padding statt Schriftgröße,
 * damit sich am Erscheinungsbild nichts ändert; display:inline-flex sorgt
 * dafür, dass das Padding tatsächlich Höhe erzeugt (bei inline-Links sonst
 * wirkungslos) und der Text vertikal mittig im vergrößerten Klickbereich
 * bleibt.
 */
a[href^="tel:"],
a[href^="mailto:"] {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}
.paddenwirt-footer-links-grid a,
.paddenwirt-footer-bottom-links a,
.paddenwirt-footer-route a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}

/*
 * 0.8.6: Leichter Herbst-Akzent für die Saisonkarte.
 * Nutzt bewusst dieselbe Zierlinie wie der Hero (kein neues Motiv), nur an
 * anderer Stelle eingesetzt — passt zur bestehenden Formsprache.
 */
.paddenwirt-season-ornament { width: 120px; height: 14px; margin: 0.5rem 0 1.25rem; background: url("assets/icons/ornament-linie.svg") no-repeat center / contain; }
.paddenwirt-highlight-gericht { border-left: 3px solid #7A302B; padding-left: 1rem; }

/* Paddenwirt – herbstliche Kartenbausteine
 * Zusatzklasse aus Notion: paddenwirt-season--autumn
 */
.paddenwirt-season--autumn {
  --paddenwirt-autumn-ivory: #f4eedf;
  --paddenwirt-autumn-parchment: #ead8b8;
  --paddenwirt-autumn-oxblood: #7a302b;
  --paddenwirt-autumn-brass: #b18a4a;
  --paddenwirt-autumn-green: #25382f;
  --paddenwirt-autumn-coal: #272521;

  position: relative;
  isolation: isolate;
  overflow: hidden;
  color: var(--paddenwirt-autumn-coal);
  background:
    radial-gradient(circle at 100% 0, rgba(177, 138, 74, 0.18), transparent 34%),
    linear-gradient(145deg, var(--paddenwirt-autumn-ivory) 0%, var(--paddenwirt-autumn-parchment) 100%);
  border: 1px solid rgba(122, 48, 43, 0.28);
  border-top: 4px solid var(--paddenwirt-autumn-oxblood);
  border-radius: 12px;
  padding: clamp(1.25rem, 2.8vw, 2.25rem);
  box-shadow: 0 1px 2px rgba(39, 37, 33, 0.05), 0 8px 24px rgba(39, 37, 33, 0.07);
}

.paddenwirt-season--autumn::after {
  content: "";
  position: absolute;
  z-index: -1;
  right: -3rem;
  bottom: -4.5rem;
  width: 10rem;
  height: 10rem;
  border: 1px solid rgba(177, 138, 74, 0.24);
  border-radius: 50%;
}

.paddenwirt-season--autumn :where(h2, h3, .wp-block-heading) {
  color: var(--paddenwirt-autumn-oxblood);
  text-wrap: balance;
}

.paddenwirt-season--autumn :where(p, li) {
  max-width: 68ch;
}

.paddenwirt-season--autumn :where(img) {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 10px;
  border: 1px solid rgba(122, 48, 43, 0.2);
}

.paddenwirt-season--autumn :where(a.wp-element-button, .wp-block-button__link, a.paddenwirt-button) {
  color: var(--paddenwirt-autumn-ivory);
  background: var(--paddenwirt-autumn-oxblood);
  border: 1px solid var(--paddenwirt-autumn-oxblood);
  border-radius: 8px;
  min-height: 44px;
  padding: 0.7rem 1.1rem;
  text-decoration: none;
  font-weight: 700;
}

.paddenwirt-season--autumn :where(a.wp-element-button, .wp-block-button__link, a.paddenwirt-button):hover {
  background: var(--paddenwirt-autumn-green);
  border-color: var(--paddenwirt-autumn-green);
}

.paddenwirt-season--autumn :where(a.wp-element-button, .wp-block-button__link, a.paddenwirt-button):focus-visible {
  outline: 3px solid var(--paddenwirt-autumn-brass);
  outline-offset: 3px;
}

@media (max-width: 600px) {
  .paddenwirt-season--autumn {
    border-radius: 10px;
    padding: 1.25rem;
  }
}

@media print {
  .paddenwirt-season--autumn {
    color: #000;
    background: #fff;
    border: 1px solid #777;
    box-shadow: none;
  }

  .paddenwirt-season--autumn::after {
    display: none;
  }
}

/*
 * 0.8.18: Layout-Loch im Block "Speisen und Getränke" (Startseite).
 * Ursache: Der Columns-Block hat im Editor "Ausrichtung: oben" erhalten
 * (WordPress-Klasse ".are-vertically-aligned-top", align-items:flex-start
 * aus dem Kern-CSS) — dadurch bleibt die Textspalte auf ihrer eigenen
 * (kürzeren) Höhe stehen, statt sich an der deutlich höheren Hochformat-
 * Bildspalte zu orientieren, und darunter entsteht Leerraum. Vertikale
 * Zentrierung statt Ausrichtung "oben" behebt das, ohne Bildhöhe oder Text
 * zu verändern. :has() zielt bewusst nur auf die eine bekannte Bildklasse,
 * damit andere Columns-Blöcke mit "Ausrichtung: oben" unangetastet bleiben.
 */
.wp-block-columns:has(.paddenwirt-food-foto) {
  align-items: center;
}

/*
 * 0.8.7: Historische Marke im Header — Padde-Signet + Wortmarke
 * „Restaurant Zum Paddenwirt" + Unterzeile „Ihre Gaststätte im Herzen
 * Berlins", übernommen von der bisherigen Website (siehe CONTENT-MISSING.md
 * zur Herkunft/Rechteklärung). Logo kommt aus dem Pattern
 * patterns/branding-logo.php (siehe dort zur Website-Logo-Entscheidung) —
 * Wortmarke und Unterzeile stehen dagegen direkt in parts/header.html, damit
 * ein WordPress-Administrator sie im Website-Editor bearbeiten kann, ohne
 * das Theme anzufassen. Historische Schrift (UnifrakturMaguntia, lokal unter
 * assets/fonts/, siehe theme.json Preset "wordmark-historic") ausschließlich
 * für die Wortmarke — Navigation, Buttons und Fließtext bleiben bei der
 * modernen Schrift.
 */
.paddenwirt-wordmark-group { align-items: center; gap: 0.6rem; }
/*
 * Fester visueller Platz für das Website-Logo (core/site-logo) bzw. die
 * vorläufige Padde-Datei: ein quadratischer "Slot" statt einer starren
 * Bildhöhe allein. object-fit:contain skaliert jedes künftig hochgeladene
 * Bild sauber in diesen Slot ein, ohne es zu verzerren und ohne dass eine
 * später größere/anders proportionierte Originaldatei das Headerlayout
 * verschiebt. width/height des <img> kommen bei core/site-logo als Inline-
 * Style vom Block selbst (abhängig vom "width"-Attribut) — deshalb hier
 * mit !important überschrieben, eng auf diese eine Klasse begrenzt.
 */
.paddenwirt-wordmark-logo { margin: 0; flex: 0 0 auto; width: 70px; height: 70px; }
.paddenwirt-wordmark-logo img {
  display: block;
  width: 70px !important;
  height: 70px !important;
  object-fit: contain;
}
.paddenwirt-wordmark-logo a { display: block; width: 100%; height: 100%; }
.paddenwirt-wordmark-text-group { gap: 0 !important; }
.paddenwirt-wordmark-text,
.paddenwirt-wordmark-sub { margin: 0; }
.paddenwirt-wordmark-text a,
.paddenwirt-wordmark-logo a { text-decoration: none; color: inherit; }
.paddenwirt-wordmark-text a:hover,
.paddenwirt-wordmark-text a:focus-visible { text-decoration: underline; }
.paddenwirt-wordmark-text {
  font-family: var(--wp--preset--font-family--wordmark-historic, Georgia, serif);
  font-size: clamp(1.25rem, 0.3rem + 1.8vw, 2.1rem);
  line-height: 1.1;
  color: #25382F;
}
.paddenwirt-wordmark-sub {
  font-family: var(--wp--preset--font-family--body);
  font-size: 0.8rem;
  color: #5E4927;
}
@media (max-width: 781px) {
  .paddenwirt-wordmark-logo { width: 52px; height: 52px; }
  .paddenwirt-wordmark-logo img { width: 52px !important; height: 52px !important; }
  .paddenwirt-wordmark-text { font-size: 1.4rem; }
  .paddenwirt-wordmark-prefix,
  .paddenwirt-wordmark-sub { display: none; }
}

/*
 * 0.9.2: Social Media jetzt im Header (Template-Teil
 * "parts/social-media.html", im Website-Editor unter Design → Editor →
 * Template-Teile → "Social Media" pflegbar), zweimal eingebunden: dezent
 * neben der Desktop-Navigation ("paddenwirt-desktop-social") und im
 * geöffneten mobilen Menü nach der Sprachwahl ("paddenwirt-mobile-social").
 * Ruhige, einfarbige Icons statt bunter Plattform-Kacheln
 * (Blockstil "is-style-logos-only" + Attribut "iconColor":"brass").
 * Touch-Ziel bleibt bei jeder Icongröße 44×44px, über Padding statt über
 * die Icongröße selbst. Fokus-/Hoverzustand kommt vom globalen
 * "a:focus-visible" (siehe oben) – keine eigene Regel nötig.
 */
.paddenwirt-social { margin: 0; }
.paddenwirt-social .wp-block-social-link a {
  min-width: 44px;
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.paddenwirt-social .wp-block-social-link svg { width: 18px; height: 18px; }
/* Auf dem hellen Elfenbein-Header kontrastiert Flaschengrün deutlicher als Messing */
.paddenwirt-desktop-social { margin: 0 0.35rem; color: #25382F; }
.paddenwirt-mobile-social { margin-top: 0.35rem; }
/* Route-Link optisch ruhig unterhalb von Kontakt und Reservierungshinweis */
.paddenwirt-footer-route { font-size: 0.9rem; }

/*
 * 0.8.8: Bewertungen/Profile-Hinweistext (Pattern
 * "Paddenwirt – Bewertungen und Profile") nutzt bewusst dieselbe
 * .paddenwirt-tbd-Kennzeichnung wie andere unbestätigte Angaben (z. B.
 * Öffnungszeiten) — keine neue Platzhalter-Optik erfunden.
 */


/*
 * Paddenwirt Display 0.600.
 * H1 siteweit und die abgestimmten H2-Displaytitel verwenden den lokalen
 * Webfont. Alle funktionale UI-Typografie bleibt beim bestehenden System.
 */
h1,
.paddenwirt-display-title {
  font-family: var(--wp--preset--font-family--paddenwirt-display);
  font-weight: 400;
  letter-spacing: -0.012em;
  line-height: 1.15;
  text-wrap: balance;
}

.paddenwirt-display-title {
  color: #25382F;
}

.paddenwirt-hero-title.paddenwirt-display-title {
  font-size: clamp(2.7rem, 4.6vw, 3.65rem);
  max-width: 18ch;
  color: #F4EEDF;
}

.paddenwirt-display-title.has-text-align-center {
  margin-inline: auto;
}

h2.paddenwirt-display-title {
  font-size: clamp(2rem, 7vw, 2.5rem);
}

@media (min-width: 782px) {
  h2.paddenwirt-display-title {
    font-size: clamp(2.2rem, 3.2vw, 2.9rem);
  }
}

@media (max-width: 781px) {
  .paddenwirt-hero-title.paddenwirt-display-title {
    font-size: clamp(2.2rem, 10vw, 3rem);
    max-width: 13ch;
  }
}

/* QA 14.09.2026: Kontrastkorrekturen auf dunklem Flaschengrün. */
.has-bottle-green-background-color .paddenwirt-eyebrow,
[class*="has-bottle-green-background-color"] .paddenwirt-eyebrow {
  color: #E3C27B;
}

a[href="#getraenke-top"] {
  color: #F4EEDF;
}

a[href="#getraenke-top"]:hover,
a[href="#getraenke-top"]:focus-visible {
  color: #E3C27B;
}

/* Finalisierung 17.09.2026: Lesbarkeit und Rücksprung auf langen Seiten. */
@media (max-width: 599px) {
  .entry-content p:not(.has-small-font-size),
  .wp-block-post-content p:not(.has-small-font-size):not(.paddenwirt-menu__legal),
  .paddenwirt-menu__item p:not(.paddenwirt-menu__legal),
  .paddenwirt-signature p:not(.paddenwirt-signature__role) {
    font-size: 1rem;
    line-height: 1.6;
  }
  .wp-block-post-content h3,
  .paddenwirt-menu__item h3,
  .paddenwirt-signature__name {
    font-size: 1.125rem;
    line-height: 1.35;
  }
}

.paddenwirt-back-to-top {
  position: fixed;
  right: clamp(1rem, 3vw, 2rem);
  bottom: clamp(1rem, 3vw, 2rem);
  z-index: 40;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 64px;
  min-height: 44px;
  padding: 0.65rem 0.9rem;
  border-radius: 999px;
  background: #25382F;
  color: #F4EEDF !important;
  border: 1px solid #B18A4A;
  box-shadow: 0 8px 22px rgba(39, 37, 33, 0.18);
  text-decoration: none;
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
}
.paddenwirt-back-to-top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.paddenwirt-back-to-top:hover,
.paddenwirt-back-to-top:focus-visible {
  background: #7A302B;
  color: #F4EEDF !important;
}
/*
 * 0.9.3: ".paddenwirt-back-to-top { display:inline-flex }" oben hat höhere
 * Spezifität als Browsers eigene "[hidden]{display:none}"-Regel und
 * gewinnt daher gegen das Attribut. Das Footer-Skript setzt "hidden" auf
 * jedes weitere Vorkommen (pro Seite nur ein sichtbarer Rücksprung) — ohne
 * diese Regel bleibt das ausgeblendete Element trotzdem im Layout-Modus
 * "flex" und wird nur zufällig durch opacity/visibility verdeckt.
 */
.paddenwirt-back-to-top[hidden] {
  display: none !important;
}

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; } }

/*
 * 0.9.2: Sprachumschalter "DE | EN" (Shortcode paddenwirt_sprachumschalter,
 * PHP-Logik in functions.php unveraendert – Polylang entscheidet weiterhin,
 * welche Sprachen ueberhaupt ausgegeben werden). Nur die Optik wurde von
 * reinen "|"-getrennten Textlinks auf eine kompakte Segment-/Pill-Navigation
 * umgestellt: aktive Sprache in Flaschengrün gefüllt, inaktive Sprache
 * hell mit dezentem Rahmen, Messing nur als feiner Akzent im Hover/Fokus.
 * Keine Flaggen, kein Farbe-allein-Kennzeichen (aktive Sprache zusaetzlich
 * fett + eigener Hintergrund, WCAG-AA-sicher). Der von PHP erzeugte
 * "|"-Trenner (span[aria-hidden]) wird rein optisch ausgeblendet, da die
 * Pillen selbst schon durch Abstand getrennt sind.
 */
.paddenwirt-sprachumschalter {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 3px;
  border-radius: 999px;
  border: 1px solid rgba(37, 56, 47, 0.18);
}
.paddenwirt-sprachumschalter > span[aria-hidden] { display: none; }
.paddenwirt-sprachumschalter-link {
  min-height: 44px;
  min-width: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 0.9rem;
  border-radius: 999px;
  border: 1px solid rgba(37, 56, 47, 0.35);
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-decoration: none;
  color: #25382F;
  transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.paddenwirt-sprachumschalter-link:hover,
.paddenwirt-sprachumschalter-link:focus-visible {
  border-color: #B18A4A;
}
.paddenwirt-sprachumschalter-link.is-active {
  background: #25382F;
  border-color: #25382F;
  color: #F4EEDF;
}
/*
 * 0.9.2: Live im geöffneten mobilen Menü beobachtet: die Pille oben ist
 * für den hellen Elfenbein-Header gebaut (aktive Sprache dunkelgrün
 * gefüllt). Im Overlay ist der Hintergrund selbst schon dunkelgrün
 * (overlayBackgroundColor bottle-green) — die aktive Pille wurde darauf
 * praktisch unsichtbar. Muss NACH der Basisregel oben stehen, sonst
 * gewinnt bei gleicher Spezifität die spätere Regel im Quellcode nicht
 * automatisch die hier gewünschte. Farben fürs dunkle Overlay umgekehrt:
 * aktive Sprache elfenbeinfarben gefüllt, inaktive Sprache heller Rahmen
 * auf Elfenbein-Text, Messing-Akzent beim Hover bleibt.
 */
@media (max-width: 1100px) {
  .paddenwirt-sprachumschalter { border-color: rgba(244, 238, 223, 0.35); }
  .paddenwirt-sprachumschalter-link {
    color: #F4EEDF;
    border-color: rgba(244, 238, 223, 0.45);
  }
  .paddenwirt-sprachumschalter-link:hover,
  .paddenwirt-sprachumschalter-link:focus-visible {
    border-color: #B18A4A;
  }
  .paddenwirt-sprachumschalter-link.is-active {
    background: #F4EEDF;
    border-color: #F4EEDF;
    color: #25382F;
  }
}

/*
 * 0.9.3: Preise siteweit einheitlich rechtsbündig/am Zeilenende, kein
 * Umbruch innerhalb des Preises, Ziffern in fester Breite (tabular-nums)
 * fuer sauberes Untereinanderstehen mehrerer Preise. Gilt sowohl fuer die
 * dynamische Speise-/Getraenkekarte (Menue-Sync-Plugin) als auch fuer die
 * statischen "-altbestand"-Patterns.
 */
.paddenwirt-menu__price,
.paddenwirt-signature__price,
.paddenwirt-varianten {
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

/*
 * 0.9.3: Kennzeichnungen (vegetarisch, hausgemacht, ...) zurueckhaltend
 * typografisch statt als Badge-Kapsel. Ueberschreibt die Pillen-Optik aus
 * dem Menue-Sync-Plugin (assets/menu.css: border-radius:999px + Fuellung);
 * Plugin-Datei bleibt unveraendert, nur hoehere Spezifitaet im Theme.
 */
.paddenwirt-menu .paddenwirt-menu__label {
  display: inline;
  padding: 0;
  border-radius: 0;
  background: none;
  color: #5E4927;
  font-size: 0.72em;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.paddenwirt-menu .paddenwirt-menu__labels {
  gap: 0 0.6rem;
}
.paddenwirt-menu .paddenwirt-menu__label::before {
  content: "\2022";
  margin-right: 0.4rem;
  color: #B18A4A;
}

/*
 * 0.9.3-fix4: Kontrast-Fix (Lighthouse: unzureichender Kontrast auf
 * Speise- und Getraenkekarte). Allergen-/Zusatzstoffzeile kommt aus dem
 * Menue-Sync-Plugin mit "opacity:0.62" auf Kohle-Text - auf Elfenbein
 * dadurch nur 4,18:1 (noetig: 4,5:1 fuer Fliesstextgroesse). Plugin-Datei
 * bleibt unveraendert; hier stattdessen volle Deckkraft plus dasselbe
 * bereits etablierte abgeleitete dunkle Messing wie bei ".paddenwirt-tbd"
 * (7,38:1 auf Elfenbein) - behaelt die zurueckhaltende Wirkung, besteht
 * aber AA. Ausschliesslich auf Elfenbein-Hintergrund geprueft (44 von 44
 * aktuellen Vorkommen auf Speise-/Getraenkekarte).
 */
.paddenwirt-menu__legal {
  opacity: 1;
  color: #5E4927;
}

/*
 * 0.9.3: Signature-Bereich ("Drei Gerichte, die fuer den Paddenwirt
 * stehen") als eine gemeinsame Empfehlungsebene statt drei einzelner
 * Karten. Ueberschreibt das dunkle Flaschengruen + Volleinzelrahmen aus
 * dem Menue-Sync-Plugin: heller Creme-/Pergament-Ton, ein gemeinsamer
 * feiner Rahmen um die ganze Gruppe, Messing-Akzent oben, innerhalb der
 * Gruppe nur duenne Trennlinien zwischen den drei Gerichten statt eigener
 * Rahmen je Karte. Keine Bilder/Icons/Schatten/Badges (unveraendert keine
 * vorhanden).
 *
 * 0.9.3-fix2: Feinschliff auf Wunsch nach Abgleich mit dem WPVibe-Draft -
 * nur dieser Bereich, sonst nichts an der Speisekarte veraendert.
 * - Aussenbox wieder leicht abgerundet (10px) + overflow:hidden, damit die
 *   3px-Messinglinie oben der Rundung sauber folgt statt eckig ueberzustehen.
 * - Weniger Aussenabstand (Klammer-Werte gegenueber dem Plugin-Default
 *   clamp(1.75rem,4vw,3rem) reduziert) = mehr nutzbare Spaltenbreite.
 * - Ueberschrift eigens (kleiner als das globale h2-Clamp aus theme.json,
 *   das bei 1440px nahe 2rem/32px liegt und dadurch unnoetig umbrach) -
 *   bei 1440/1024px in der Sandbox als einzeilig verifiziert.
 * - Gerichtsnamen: overflow-wrap/word-break auf "normal" statt "break-word"
 *   (das Plugin-Default) + hyphens:none - Zeilenumbruch jetzt nur noch an
 *   Wortgrenzen ("Hausgemachte" / "Sülze"), kein Umbruch mehr mitten im Wort.
 * - Trennlinie zwischen den Gerichten (Desktop) nicht mehr als volle
 *   Rahmenlinie ueber die ganze Elementhoehe, sondern als kurzes ::before
 *   mit Innenabstand oben/unten (0.5rem / 1.5rem) und schwaecherer Deckkraft
 *   (14% statt Volltonfarbe) - beginnt naeher am Inhalt, endet vor dem Preis.
 */
.paddenwirt-signatures {
  background: #F4EEDF;
  color: #272521;
  border: 1px solid #DED8CC;
  border-top: 3px solid #B18A4A;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: none;
  padding: clamp(1.25rem, 2.5vw, 2rem);
}
.paddenwirt-signatures > h2 {
  color: #25382F;
  font-size: clamp(1.3rem, 1.05rem + 1vw, 1.7rem);
  margin-bottom: clamp(0.75rem, 2vw, 1.25rem);
}
.paddenwirt-signatures__grid {
  gap: clamp(1rem, 2vw, 1.5rem);
}
.paddenwirt-signature {
  border: none;
  border-radius: 0;
  box-shadow: none;
  background: none;
  position: relative;
  display: flex;
  flex-direction: column;
  padding: clamp(0.9rem, 1.5vw, 1.3rem);
}
.paddenwirt-signature__name {
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}
.paddenwirt-signature + .paddenwirt-signature {
  border-top: 1px solid rgba(39, 37, 33, 0.14);
}
/*
 * 0.9.3-fix4: Kontrast-Fix (Lighthouse: unzureichender Kontrast auf der
 * Speisekarte). #B18A4A (Messing) erreicht auf #F4EEDF (Elfenbein) nur
 * 2,75:1 - derselbe bereits dokumentierte Fall wie beim Kontrast-Fix
 * 0.7.0 (siehe ".paddenwirt-tbd" weiter oben). Ersetzt durch dasselbe dort
 * bereits etablierte abgeleitete dunkle Messing #5E4927 (7,38:1 auf
 * Elfenbein) statt eine neue Farbe zu erfinden.
 */
.paddenwirt-signature__role {
  color: #5E4927;
}
.paddenwirt-signature__description,
.paddenwirt-signature__text {
  color: #5E4927;
}
.paddenwirt-signature__price {
  color: #7A302B;
  margin-top: auto;
  padding-top: 0.6rem;
}
@media (min-width: 760px) {
  .paddenwirt-signature + .paddenwirt-signature {
    border-top: none;
  }
  .paddenwirt-signature + .paddenwirt-signature::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.5rem;
    bottom: 1.5rem;
    width: 1px;
    background: rgba(39, 37, 33, 0.14);
  }
}

/*
 * 0.9.3: Gruene Vollbreiten-Inhaltsbalken siteweit (Speisekarte-Intro,
 * Statement-Zwischenbloecke, Abschlussbereiche auf Speise-/Getraenkekarte,
 * Besuch und weiteren Seiten). Erkennungsmerkmal: redaktionelle Gruppe mit
 * align:wide UND Flaschengruen-Hintergrundfarbe (has-bottle-green-
 * background-color) — genau die Kombination, mit der solche Statement-
 * Bloecke im Editor angelegt werden. Kleine gruene Karten/Komponenten
 * nutzen kein align:wide und sind hiervon nicht betroffen. Header und
 * Footer haben eigene Klassen (.paddenwirt-header/.paddenwirt-footer) und
 * bleiben unangetastet.
 *
 * 0.9.3-fix1: Echte Full-Width-Wrapper-Struktur statt Full-Bleed-CSS direkt
 * auf das ausgerichtete Element. functions.php huellt jeden der drei
 * gruenen Baender (zwei core/group-Bloecke per render_block_core/group,
 * den Plugin-Zwischenblock per the_content) in ".paddenwirt-full-bleed".
 * AEUSSERER Wrapper = volle Viewportbreite (kein Rundungsradius). Direktes
 * Kind (das urspruengliche, unveraenderte Element) wird auf 100% der
 * Wrapperbreite gestreckt - seine eigene Hintergrundfarbe reicht dadurch
 * bis zum Rand, seine eigene Innenabstand-Angabe (Editor-Spacing) bleibt
 * unveraendert. DESSEN Kinder (Text/Ueberschriften/Buttons bzw. beim
 * Plugin-Block dessen Inhalts-Div) werden auf die normale Content-Breite
 * (720px) zentriert.
 *
 * "!important" bei width/max-width/margin/transform ist hier zwingend, kein
 * Stilmittel: WordPress' eigenes "global-styles-inline-css" erzwingt fuer
 * jedes unausgerichtete Kind eines ".is-layout-constrained"-Containers per
 * "!important" die zentrierte Content-Breite
 * (".is-layout-constrained > :where(...) { max-width: ...; margin-left:
 * auto !important; margin-right: auto !important; }") - ohne eigenes
 * "!important" in mindestens derselben Spezifitaet wuerde diese Kern-Regel
 * gewinnen. In der Sandbox verifiziert (1440/1024/390px, kein horizontaler
 * Overflow, Inhalt exakt auf 720px zentriert, keine Rundungsreste).
 */
.paddenwirt-full-bleed {
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: 50% !important;
  margin-right: 0 !important;
  transform: translateX(-50%) !important;
}
.paddenwirt-full-bleed > * {
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  border-radius: 0;
  box-sizing: border-box;
}
.paddenwirt-full-bleed > * > * {
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}

/*
 * 0.10.0: Header theme-weit dunkel (Flaschengrün) mit Messing-Akzent.
 * Struktur, Sprachumschalter und Reservierungs-CTA
 * bleiben unverändert – nur Farben und Wortmarke. Steht bewusst am Ende,
 * damit die Basisregeln oben ohne !important überschrieben werden.
 */
.paddenwirt-site-header .paddenwirt-wordmark-text { color: #F4EEDF; white-space: nowrap; }
.paddenwirt-site-header .paddenwirt-wordmark-sub { color: #CAAF81; white-space: nowrap; letter-spacing: 0.02em; }
.paddenwirt-site-header .wp-block-navigation-item > a.wp-block-navigation-item__content {
  color: #F4EEDF;
  text-decoration: none;
  border-bottom: 2px solid transparent;
}
.paddenwirt-site-header .wp-block-navigation-item > a.wp-block-navigation-item__content:hover,
.paddenwirt-site-header .wp-block-navigation-item > a.wp-block-navigation-item__content:focus-visible {
  color: #CAAF81;
}
.paddenwirt-site-header .wp-block-navigation-item > a[aria-current="page"] {
  border-bottom-color: #B18A4A;
  color: #CAAF81;
}
.paddenwirt-site-header .wp-block-navigation__responsive-container-open { color: #F4EEDF; }
.paddenwirt-site-header .paddenwirt-desktop-primary .wp-block-button__link {
  background: #B18A4A;
  color: #272521;
  border: 1px solid #B18A4A;
  font-weight: 600;
}
.paddenwirt-site-header .paddenwirt-desktop-primary .wp-block-button__link:hover,
.paddenwirt-site-header .paddenwirt-desktop-primary .wp-block-button__link:focus-visible {
  background: #CAAF81;
  border-color: #CAAF81;
  color: #272521;
}
.paddenwirt-site-header a:focus-visible { outline-color: #CAAF81; }
@media (min-width: 782px) {
  .paddenwirt-site-header .paddenwirt-sprachumschalter { border-color: rgba(244, 238, 223, 0.3); }
  .paddenwirt-site-header .paddenwirt-sprachumschalter-link { color: #F4EEDF; border-color: rgba(244, 238, 223, 0.4); }
  .paddenwirt-site-header .paddenwirt-sprachumschalter-link:hover,
  .paddenwirt-site-header .paddenwirt-sprachumschalter-link:focus-visible { border-color: #B18A4A; }
  .paddenwirt-site-header .paddenwirt-sprachumschalter-link.is-active {
    background: #F4EEDF;
    border-color: #F4EEDF;
    color: #25382F;
  }
}

/*
 * Header: eine Ebene, breiter Container (wie Startseite), Umbruch nur noch
 * im mobilen Overlay. Das WordPress-Website-Logo erhält 70 px am Desktop.
 */
.paddenwirt-site-header.is-layout-constrained > .paddenwirt-header-row { max-width: 1240px; }
@media (min-width: 782px) {
  .paddenwirt-site-header .paddenwirt-wordmark-logo,
  .paddenwirt-site-header .paddenwirt-wordmark-logo img { width: 70px !important; height: 70px !important; }
  .paddenwirt-site-header .paddenwirt-wordmark-text { font-size: 1.6rem; }
  .paddenwirt-site-header .paddenwirt-wordmark-sub { font-size: 0.75rem; }
  .paddenwirt-site-header .paddenwirt-header-row,
  .paddenwirt-site-header .paddenwirt-header-right { flex-wrap: nowrap; }
  .paddenwirt-site-header .paddenwirt-header-right { gap: 0.75rem; }
  .paddenwirt-site-header .paddenwirt-desktop-primary { flex: 0 0 auto; }
  .paddenwirt-site-header .paddenwirt-desktop-primary .wp-block-button__link { white-space: nowrap; }
  .paddenwirt-site-header .wp-block-navigation__responsive-container-content { flex-wrap: nowrap; gap: 1rem; }
  .paddenwirt-site-header .wp-block-navigation__container { flex-wrap: nowrap; }
  .paddenwirt-site-header .wp-block-navigation-item > a.wp-block-navigation-item__content { font-size: 0.95rem; }

  .paddenwirt-site-header .paddenwirt-desktop-social { margin: 0 0.2rem; align-self: center; }
  .paddenwirt-site-header .paddenwirt-desktop-social .wp-block-social-link { font-size: 28px; margin: 0; }
  .paddenwirt-site-header .paddenwirt-desktop-social .wp-block-social-link a {
    width: 52px;
    height: 52px;
    min-width: 52px;
    min-height: 52px;
    padding: 0;
    color: #B18A4A;
    background: rgba(177, 138, 74, 0.08);
    border: 1px solid rgba(177, 138, 74, 0.72);
    box-shadow: none;
    border-radius: 50%;
  }
  .paddenwirt-site-header .paddenwirt-desktop-social .wp-block-social-link svg { width: 28px; height: 28px; fill: currentColor; }
  .paddenwirt-site-header .paddenwirt-desktop-social .wp-block-social-link a:hover,
  .paddenwirt-site-header .paddenwirt-desktop-social .wp-block-social-link a:focus-visible { color: #F4EEDF; background: #B18A4A; }
}

/*
 * 0.11.0: Footer im neuen Designsystem (Flaschengrün, Messing).
 * Inhalte und Links unverändert; nur Farben. Der Reservierungs-CTA
 * verwendet dieselbe Messing-Buttonsprache wie der Header statt Weinrot.
 */
.paddenwirt-footer { border-top: 1px solid #B18A4A; }
.paddenwirt-footer .wp-block-button__link,
.paddenwirt-footer .wp-block-button__link:visited {
  background: #B18A4A;
  border: 1px solid #B18A4A;
  border-radius: 3px;
  color: #272521;
  font-weight: 600;
}
.paddenwirt-footer .wp-block-button__link:hover,
.paddenwirt-footer .wp-block-button__link:focus-visible {
  background: #CAAF81;
  border-color: #CAAF81;
  color: #272521;
}
.paddenwirt-footer-heading { font-weight: 600; letter-spacing: 0.12em; }
