/*!
 * place to be — widget-bridge.css
 *
 * Der Panzer des Packs gegen die drei ungelayerten Kaskaden-Ebenen im Wirt
 * (Elementor frontend.css + Kit-CSS, Host-Theme-Reset, Elementors `.elementor img`).
 * Lädt als LETZTE Pack-CSS (zeus.json assets.css[], nach Theme-/Component-CSS) und
 * wird vom Theme-Präfix-Build bewusst ausgenommen (bin/theme-prefix.conf).
 *
 * Was hierher gehört (Gates G12 / lint-components.php erzwingen es):
 *   - button.<klasse> / button[data-…] für jede Komponentenklasse, die auf einem
 *     nackten <button> gerendert wird (Host-Theme-Resets schlagen sonst 0,1,0-Klassen)
 *   - .zeus-section <selektor> { height: 100% } für Cover-Bilder (Elementors
 *     `.elementor img { height:auto }` klobbert jede Regel ≤ 0,1,1)
 *   - Für Widgets aus `theme_templates` (Kopf-/Fußzeile) NICHT `.zeus-section` als
 *     Vorfahre nehmen: Theme-Teile stehen außerhalb jeder Section, ein dort gescopter
 *     Panzer greift bei ihnen nie. Stattdessen die Theme-Teil-Klasse selbst, z. B.
 *     `.xx-header .xx-header__logo { height: 28px }` — auch (0,2,0), schlägt also
 *     ebenso `.elementor img`. G12 erkennt seit 10.09.2026 beide Formen.
 *     (Pilot place to be: die Wortmarke lief sonst auf 978×256 statt 107×28.)
 *   - Display-Utilities, die ein Komponenten-Panzer sonst überstimmt (EWH-Lektion)
 * Was NICHT hierher gehört: Look, Layout, Tokens — das ist Sache der Theme-/Component-CSS.
 */

/* Elementor-Container-Gap: Container sind flex-column mit 20 px Gap. Jedes Zeus-Widget
 * ist eine vollflächige <section> — der Gap wird als heller Streifen zwischen zwei
 * Flächen sichtbar. Das Kit schreibt seine Defaults als `.elementor-element{…}` (0,1,0)
 * in post-<kit>.css, deshalb hier (0,2,0); ein je Container gesetzter Gap (post-<ID>.css,
 * 0,3,0) behält Vorrang. Wirksame Variable ist versionsabhängig — alle drei setzen. */
.elementor-element.e-con {
    --widgets-spacing: 0px 0px;
    --widgets-spacing-row: 0px;
    --widgets-spacing-column: 0px;
}

/* Preflight-Parität (Kit-Quelle, Z.10): zeus-base setzt :where(.zeus-section){line-height:1.5} — näherer Vorfahr als
 * <body>, der Fließtext des Component-Systems (19 px / 1.6) verlöre. Die Section löst ihre Zeilenhöhe selbst auf. */
.zeus-section[class*="ptb-"] { line-height: var(--body-lh); } /* Kit-Sections tragen keine Sammelklasse, nur ihre Blockklasse ptb-<block> */

/* Flex-Grundgröße der Widget-Wrapper (30.09.2026): Im Spalten-Container (.e-con, flex column) berechnet Chrome die
 * Grundhöhe eines Widgets ohne feste Breite mit einer anderen Inline-Größe — Raster darin (Kennzahlen, Seitenkopf-
 * Brotkrumen) brechen dabei anders um, der Wrapper wird mobil bis zu 80 px höher als seine Section (sichtbare
 * Lücke). Volle Breite macht die Messung eindeutig; gemessen Startseite 390 px: 424 → 357 px (= Prototyp). */
.e-con > .elementor-widget[class*="elementor-widget-ptb_"] { width: 100%; }

/* ---- place to be: Panzer (G12) ---------------------------------------------------------------------- */
/* Slider-/Laufband-Knöpfe allgemein (Anlässe, Räume, Bewertungen): neutraler Panzer, die Klassenregeln unten setzen die Optik */
button[data-ptb-prev],
button[data-ptb-next] { margin: 0; padding: 0; }
/* Galerie (cb17) und Willkommens-Popup (Fußzeile): nackte <button> — Werte aus ptb-theme.css (zweiter Lauf 30.09.2026) */
button[data-ptb-galerie-auf] { margin: 0; padding: 0; border: 0; background: none; }
button[data-ptb-galerie-zu] { margin: 0; padding: 8px 10px; border: 0; background: transparent; color: var(--text-on-dark); }
button[data-ptb-galerie-zurueck],
button[data-ptb-galerie-vor] { margin: 0; padding: 0; border: 1px solid var(--text-on-dark); border-radius: 999px; background: transparent; color: var(--text-on-dark); }
button[data-ptb-popup-zu] { margin: 0; padding: 0; border: 0; border-radius: var(--radius-pill); background: transparent; color: var(--text-soft); }
/* Formular-Zurück-Knopf des Kits (nur Referenz-Layout; auf der Website rendert WPForms) */
button[data-ptb-el] { margin: 0; border: 0; background: transparent; color: inherit; }
/* Kopfzeile: nackte <button> (Menü-Toggle, Dropdown-Punkte) gegen Host-Theme-Resets — Werte aus header.css */
button.ptb-header__toggle,
button[data-ptb-kopf-toggle] { margin: -6px; padding: 6px; border: 0; background: transparent; color: var(--kopf-text); }
button.ptb-header__link,
button[data-ptb-kopf-drop] { margin: 0; padding: 20px; border: 0; border-radius: 0; background: transparent; color: var(--kopf-text); font-family: var(--font-condensed); font-size: 20px; font-weight: 500; line-height: 1; text-align: left; text-transform: uppercase; }
button.ptb-header__toggle:hover, button.ptb-header__toggle:focus,
button.ptb-header__link:hover, button.ptb-header__link:focus { background: transparent; color: var(--kopf-text); }

/* Kit-Containerbreite: Core `.zeus-section > .zeus-section-inner { width:100%; max-width:1568px }` (0,2,0) schlägt
 * `.ptb-container { width:min(…) }` bzw. `.ptb-danke__schale` — Kit-Formel zurück; alle Widgets container_pad 0 (Kit rechnet border-box). */
.zeus-section > .ptb-container.zeus-section-inner { width: min(100% - 2 * var(--container-pad), var(--container-max)); max-width: none; }
.zeus-section > .ptb-grundriss__container.zeus-section-inner,
.zeus-section > .ptb-kap__container.zeus-section-inner { max-width: var(--shell-max); }
.zeus-section > .ptb-danke__schale.zeus-section-inner { width: min(100% - 40px, 860px); max-width: none; }

/* Control „Container-Breite“ (`ptb_breite`, includes/class-ptb-container-breite.php) → `data-ptb-breite` am Widget-Wrapper.
 * Ohne Wert bleibt die Kit-Breite (--container-max 1300px). NICHT an `data-zeus-container` hängen: Dort steht auf allen
 * Seiten der Wizard-Wert `full`, der jede Section auf Fensterbreite gezogen hat (Soll-Ist 11.09.2026).
 * `--shell-max` (Raumplan/Grundriss, Kapazitäten) zieht mit — das eigene Control hat keinen Altbestand. */
[data-ptb-breite="1200"] .zeus-section[class*="ptb-"] { --container-max: 1200px; --shell-max: 1200px; }
[data-ptb-breite="960"] .zeus-section[class*="ptb-"] { --container-max: 960px; --shell-max: 960px; }
[data-ptb-breite="voll"] .zeus-section[class*="ptb-"] { --container-max: 100vw; --shell-max: 100vw; }

/* Abbinder: Porträt mit fester Höhe gegen `.elementor img { height:auto }` */
.zeus-section .ptb-abbinder__kontakt-bild { height: 188px; }
@media (max-width: 767px) { .zeus-section .ptb-abbinder__kontakt-bild { height: 138px; } }
/* Kontaktleiste (außerhalb der Section): Avatar 40×40 cover */
.ptb-kontaktleiste .ptb-kontaktleiste__avatar img { height: 40px; }

/* Slider (Anlässe u. a.): nackte Knöpfe — Werte aus ptb-theme.css (.ptb-slider__btn) */
button.ptb-slider__btn { /* nur Resets, keine Größe — die setzt das Kit (50 px, mobil 44 px); nicht [data-ptb-prev]/[data-ptb-next], die tragen auch die Bewertungs-Pfeile */ padding: 0; border-radius: 999px; border: 1px solid var(--text-strong); background: transparent; color: var(--text-strong); line-height: 0; cursor: pointer; }
button.ptb-slider__btn:hover { background: var(--text-strong); color: var(--surface-muted); }
button.ptb-slider__btn:disabled { opacity: .3; cursor: default; background: transparent; color: var(--text-strong); }
/* Anlass-Karten: Cover-Bild */
.zeus-section .ptb-anlaesse__karte img { height: 100%; }

/* Räume: Tabs */
button.ptb-raeume__tab { margin: 0; padding: 13px 26px; border: 0; border-radius: 0; background: transparent; color: var(--text-strong); font-family: var(--font-condensed); font-size: 18px; line-height: 1; text-transform: uppercase; }
button.ptb-raeume__tab[aria-selected="true"] { background: var(--text-strong); color: var(--surface-muted); }
@media (max-width: 767px) { button.ptb-raeume__tab { padding: 11px 16px; font-size: 16px; } }
/* FAQ: Akkordeon-Frage */
button.ptb-faq__q,
button[data-ptb-faq-frage] { margin: 0; padding: 23px 4px; border: none; border-radius: 0; background: transparent; color: inherit; line-height: normal; text-align: left; }
/* Bewertungen: Pfeile (Markup aus [ptb_google_reviews]) */
button.ptb-bewertungen__pfeil { padding: 0; border: 2px solid var(--ptb-review-grey-200); border-radius: 50%; background: var(--surface-page); color: var(--ptb-review-grey-700); font-size: 24px; }
/* Dachterrasse: Poster als Cover-Bild */
.zeus-section .ptb-scrub__poster { height: 100%; }

/* Hero: Schließen-Knopf der Film-Lightbox + Poster-Fallback ohne Video (Kit hat keine img-Regel in .ptb-hero__video) */
button.ptb-hero__film-zu,
button[data-ptb-film-zu] { background: transparent; border: 0; padding: 8px 10px; color: var(--text-on-dark); border-radius: 0; }
.zeus-section .ptb-hero__video img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
/* Cover-Bilder (Kit-Regeln 0,1,1 gegen .elementor img) */
.zeus-section .ptb-intro__bild-img,
.zeus-section .ptb-card__media img,
.zeus-section .ptb-formular__ort-bild img { height: 100%; }
/* Kit-Regel `.ptb-anfrage:has(+ .ptb-preise:not([hidden]))` greift in Elementor nicht (jede Section in eigenem Widget-Wrapper) */
.elementor-element:has(> .ptb-anfrage, > * > .ptb-anfrage):has(+ .elementor-element .ptb-preise:not([hidden])) .ptb-anfrage { padding-bottom: 0; }
/* Räume: Raumausschnitt (contain) mit fester Höhe */
.zeus-section .ptb-raeume__plan img { height: 100%; }
/* Zweiter Lauf 30.09.2026: Cover-Bilder der neuen Blöcke gegen Elementors .elementor img { height:auto } (Werte aus ptb-theme.css) */
.zeus-section .ptb-hero__bild img,
.zeus-section .ptb-partner__bild img,
.zeus-section .ptb-seitenkopf__bild img,
.zeus-section .ptb-standorte__media img,
.zeus-section .ptb-team__bild img,
.zeus-section .ptb-beitraege__bild img { height: 100%; }
.zeus-section .ptb-galerie__zoom img { height: 100%; max-width: none; }
.zeus-section .ptb-galerie--raster .ptb-galerie__zoom img { height: auto; max-width: 100%; }
.zeus-section .ptb-footer__siegel-bild { height: 100px; }
/* Bühne (cb27): Poster-Bild füllt das Fenster wie das Video */
.zeus-section .ptb-buehne__poster { height: 100%; }
/* Logowand: feste Logo-Höhe + Maximalbreite — ohne Panzer zieht .elementor img { height:auto; max-width:100% } die
   Mediathek-Originale auf volle Breite (Startseite 41.500 px hoch, gemessen 30.09.2026; G12 prüft nur Cover-Regeln) */
.zeus-section .ptb-logowand__logo img { height: 34px; width: auto; max-width: 150px; }
@media (max-width: 767px) { .zeus-section .ptb-logowand__logo img { height: 28px; max-width: 120px; } }
