/*!
 * The Putt Club — 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;
}


/* ======================================================================
 * Kern-Nachlauf 19.10.2026: G12-Panzer der Pakete 2, 3, 5 (Quelle tasks/fanout/p<n>/bridge.css) und der
 * Gesamtlauf mit Präfix tpc- in bin/lint-components.php. Werte = Regeln aus tpc-theme.css, kein neuer Look.
 * ====================================================================== */

/* Knopf-Familie .tpc-btn auf nackten <button> (Formular-Schritte, Absenden, Karte laden, Menüknopf, Pop-up-Link):
 * Host-Theme-Resets auf button/[type=submit]/[type=button] setzen Rahmen, Innenabstand, Fläche und Schrift. Werte aus
 * .tpc-btn und den Varianten; die Varianten folgen der Basis (gleiche Spezifität 0,1,1, Reihenfolge entscheidet).
 * Ohne display (Sichtbarkeit steuert tpc-theme.css, z. B. Menüknopf erst unter 1100 px), ohne transform/box-shadow/
 * transition (setzen Host-Resets nicht); Hover/aktiv bleiben bei tpc-theme.css (0,2,0 schlägt 0,1,1). */
button.tpc-btn {
  min-height: 54px;
  padding: 0 26px;
  border: var(--linie) solid var(--interactive-kante);
  border-radius: var(--radius-pill);
  background: var(--interactive);
  color: var(--interactive-fg);
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--btn-size);
  line-height: 1.15;
  letter-spacing: -.005em;
  text-transform: none;
}
/* Primär = Basis; Zustände aus .tpc-btn--primary:hover/:active gegen Host-Resets auf button:hover/:focus. */
button.tpc-btn--primary:hover { background: var(--interactive-hover); color: var(--interactive-fg); }
button.tpc-btn--primary:active { background: var(--interactive-press); }
button.tpc-btn--ghost { background: transparent; color: var(--text-strong); border-color: var(--border-strong); box-shadow: none; }
button.tpc-btn--sm { min-height: 46px; padding: 0 20px; font-size: var(--btn-size-sm); }
button.tpc-btn--link {
  min-height: auto;
  padding: 0;
  border: 0;
  border-radius: 2px;
  background: transparent;
  box-shadow: none;
  color: var(--text-link);
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 1rem;
}
/* Formular „Zurück“ (.tpc-btn--ghost.tpc-anfrage__zurueck): Einzug aus .tpc-anfrage__zurueck gegen button { margin: 0 }. */
button.tpc-anfrage__zurueck { margin-left: auto; }

/* Icon-Knopf .tpc-iconbtn (Schließen in Hinweisleiste, Pop-up, Anfrage-Dialog): Werte aus .tpc-iconbtn. */
button.tpc-iconbtn {
  width: var(--tap-min);
  height: var(--tap-min);
  padding: 0;
  border: 0;
  border-radius: var(--radius-pill);
  background: transparent;
  color: var(--text-strong);
}

/* Kontakt, Zwei-Klick-Karte: „Karte laden“ ist ein nackter <button class="tpc-btn tpc-btn--ghost">. Host-Theme-Resets auf
 * button/[type=button] (0,1,0 und mehr) setzen Rahmen, Innenabstand, Fläche und Schrift — Werte aus .tpc-btn und .tpc-btn--ghost. */
button[data-tpc-karte-laden] { min-height: 54px; padding: 0 26px; border: var(--linie) solid var(--border-strong); border-radius: var(--radius-pill); background: transparent; color: var(--text-strong); font-family: var(--font-display); font-weight: 700; font-size: var(--btn-size); line-height: 1.15; letter-spacing: -.005em; text-transform: none; box-shadow: none; }
button[data-tpc-karte-laden]:hover { background: var(--surface-hover); color: var(--text-strong); }
button[data-tpc-karte-laden]:focus { color: var(--text-strong); }

/* Kontakt, Icons vor Adresse/Telefon/E-Mail/Öffnungszeiten (img.tpc-kontakt__icon, 32 × 32): `.elementor img { height:auto }`
 * klobbert die feste Höhe aus .tpc-kontakt__icon — Wert aus der Klassenregel. */
.zeus-section .tpc-kontakt__icon { height: var(--tpc-kontakt-icon); }

/* Paket 3 — Motive img.tpc-content-icon (Textband Preise, Eventkarten 112/80, auch Kontakt/Angebot): die feste Höhe aus
 * .tpc-content-icon (tpc-theme.css) klobbert Elementors `.elementor img { height:auto }` (schlägt Regeln bis 0,1,1);
 * Werte aus der Klassenregel und ihrer Mobil-Variante. */
.zeus-section .tpc-content-icon { height: var(--icon-groesse); }
@media (max-width: 767px) {
  .zeus-section .tpc-content-icon { height: var(--icon-groesse-mobil); }
}

/* Paket 5 — Panzer für die nackten <button> aus tpc_header, tpc_footer und der Pack-Laufzeit (G12).
 * Selektor = button.<klasse>[data-…] (lint-components.php erkennt button.<klasse>; Kern-Nachlauf: Klasse zuerst,
 * Spezifität unverändert 0,2,1) und trägt das Attribut des Elements, damit die Regel nur genau diesen Knopf trifft (data-tpc-popup-zu steht an zwei Knöpfen
 * verschiedener Form). Werte = die Regeln aus tpc-theme.css; Hover/Fokus mitgeführt, weil Host-Resets
 * (button:hover / button:focus) dort ebenfalls Hintergrund und Farbe setzen. Kein display: Sichtbarkeit
 * steuert weiter tpc-theme.css (Menüknopf erst unter 1100 px). */

/* Kopfzeile: Untermenü-Knopf (Chevron) — .tpc-header__sub-knopf; ab 1100 px wie tpc-theme.css
 * (Kopffarbe, Einzug links), darunter blendet tpc-theme.css den Knopf aus. */
button.tpc-header__sub-knopf[data-tpc-sub-knopf],
button.tpc-header__sub-knopf[data-tpc-sub-knopf]:hover,
button.tpc-header__sub-knopf[data-tpc-sub-knopf]:focus {
  padding: 0;
  border: 0;
  border-radius: var(--radius-pill);
  background: transparent;
  color: var(--text-strong);
}
@media (min-width: 1100px) {
  button.tpc-header__sub-knopf[data-tpc-sub-knopf],
  button.tpc-header__sub-knopf[data-tpc-sub-knopf]:hover,
  button.tpc-header__sub-knopf[data-tpc-sub-knopf]:focus {
    padding-inline-start: var(--space-2);
    color: var(--tpc-kopf-text);
  }
}

/* Kopfzeile: Menüknopf mobil — .tpc-btn.tpc-btn--ghost.tpc-btn--sm */
button.tpc-header__menue[data-tpc-menue] {
  min-height: 46px;
  padding: 0 20px;
  border: var(--linie) solid var(--border-strong);
  border-radius: var(--radius-pill);
  background: transparent;
  color: var(--text-strong);
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--btn-size-sm);
  line-height: 1.15;
  white-space: nowrap;
  box-shadow: none;
}
button.tpc-header__menue[data-tpc-menue]:hover { background: var(--surface-hover); color: var(--text-strong); }
button.tpc-header__menue[data-tpc-menue]:focus:not(:hover) { background: transparent; color: var(--text-strong); }

/* Icon-Knöpfe (Schließen): Hinweisleiste, Pop-up, Anfrage-Dialog — .tpc-iconbtn */
button.tpc-banner__zu[data-tpc-banner-zu],
button.tpc-popup__zu[data-tpc-popup-zu],
button.tpc-iconbtn[data-tpc-modal-zu] {
  width: var(--tap-min);
  height: var(--tap-min);
  padding: 0;
  border: 0;
  border-radius: var(--radius-pill);
  background: transparent;
  color: var(--text-strong);
}
button.tpc-banner__zu[data-tpc-banner-zu]:hover,
button.tpc-popup__zu[data-tpc-popup-zu]:hover,
button.tpc-iconbtn[data-tpc-modal-zu]:hover { background: var(--surface-hover); color: var(--text-strong); }
button.tpc-banner__zu[data-tpc-banner-zu]:focus:not(:hover),
button.tpc-popup__zu[data-tpc-popup-zu]:focus:not(:hover),
button.tpc-iconbtn[data-tpc-modal-zu]:focus:not(:hover) { background: transparent; color: var(--text-strong); }

/* Pop-up: „Erst mal umschauen“ — .tpc-btn.tpc-btn--link */
button.tpc-btn--link[data-tpc-popup-zu],
button.tpc-btn--link[data-tpc-popup-zu]:focus {
  min-height: auto;
  padding: 0;
  border: 0;
  border-radius: 2px;
  background: transparent;
  color: var(--text-link);
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 1rem;
  box-shadow: none;
}
button.tpc-btn--link[data-tpc-popup-zu]:hover { background: transparent; color: var(--text-link-hover); }

/* Kern-Nachlauf — Stationsleiste des Anfrage-Formulars (tpc_anfrage, Formularkopie im Anfrage-Dialog): nackter <button>
 * mit eigener Pillenform. Werte aus .tpc-anfrage__stationsknopf; die schmale Form (Container-Abfrage in tpc-theme.css,
 * Beschriftung unter dem Ball) mitgeführt, weil der Panzer (0,2,1) sie sonst überstimmt. aria-current/Folgestationen
 * (0,3,0) bleiben bei tpc-theme.css. */
button.tpc-anfrage__stationsknopf[data-tpc-zu] {
  min-height: var(--tap-min);
  padding: 0 var(--space-4) 0 var(--space-3);
  border: var(--linie) solid transparent;
  border-radius: var(--radius-pill);
  background: transparent;
  color: var(--text-strong);
  font-family: var(--font-body);
  font-weight: 500;
  font-size: var(--caption-size);
  line-height: 1.2;
  text-transform: none;
  letter-spacing: normal;
}
button.tpc-anfrage__stationsknopf[data-tpc-zu]:hover { background: var(--surface-hover); }
@container (max-width: 539px) {
  button.tpc-anfrage__stationsknopf[data-tpc-zu] { padding: 0 0 var(--space-1); border: 0; border-radius: 0; }
  button.tpc-anfrage__stationsknopf[data-tpc-zu]:hover { background: transparent; }
}

/* Kern-Nachlauf — Bildmasken (Hero-Foto/-Ball, Bild und Text, Bahnen): .tpc-maske img ist ein Cover-Bild
 * (height:100%, object-fit:cover); Elementors `.elementor img { height:auto }` klobbert die Regel (0,1,1). */
.zeus-section .tpc-maske img { height: 100%; }
.zeus-section .tpc-maske--ball img { border-radius: 50%; }   /* Elementor setzt .elementor img { border-radius: 0 } */

/* Kern-Nachlauf — Fußzeile (Theme-Teil, steht außerhalb jeder .zeus-section): Logo „Im selben Haus“ mit fester
 * Höhe 28 px aus .tpc-footer__haus-logo; Vorfahre ist die Theme-Teil-Klasse selbst. */
.tpc-footer .tpc-footer__haus-logo { height: 28px; }
@media (max-width: 899px) { .tpc-footer .tpc-footer__haus-logo { height: 22px; } }

/* Staging 19.10.2026 — Wortmarken in Kopf- und Fußzeile (Theme-Teile): `.elementor img { height:auto }` (0,1,1)
 * schlug .tpc-header__logo img / .tpc-footer__logo img (0,1,1, früher geladen) — Kopf-Logo 438 × 86 statt 225 × 44.
 * Höhen aus tpc-theme.css, Vorfahre ist die Theme-Teil-Klasse. */
.tpc-header .tpc-header__logo img { width: auto; height: var(--tpc-logo-h); }
.tpc-footer .tpc-footer__logo img { width: auto; height: 56px; }
@media (max-width: 899px) { .tpc-footer .tpc-footer__logo img { height: 44px; } }

/* Staging 19.10.2026 — Textlinks (.tpc-link, .tpc-btn--link): Elementors `.elementor a { text-decoration: none }`
 * (0,1,1) setzt Linie, Farbe und Stärke der Unterstreichung zurück; Werte aus tpc-theme.css. */
.elementor .tpc-link,
.elementor .tpc-btn--link {
  text-decoration: underline;
  text-decoration-thickness: var(--linie);
  text-decoration-color: var(--link-deko);
}
.elementor .tpc-link { text-underline-offset: .32em; }
.elementor .tpc-btn--link { text-underline-offset: .38em; }
.elementor .tpc-link:hover,
.elementor .tpc-btn--link:hover { text-decoration-color: currentColor; }
.elementor .tpc-banner__link {
  text-decoration: underline;
  text-decoration-color: var(--tpc-signal-lime);
  text-decoration-thickness: var(--linie);
  text-underline-offset: .3em;
}
.elementor .tpc-kontakt__link {
  text-decoration: underline;
  text-decoration-thickness: var(--linie);
  text-underline-offset: .25em;
  text-decoration-color: var(--link-deko);
}
.elementor .tpc-kontakt__link:hover { text-decoration-color: currentColor; }

/* Staging 19.10.2026 — Versatzkante der Knöpfe als Link (a.tpc-btn): `.elementor a { box-shadow: none }` (0,1,1)
 * schlug .tpc-btn (0,1,0). Reihenfolge und Werte wie tpc-theme.css (Basis → Zustände → Varianten ohne Kante). */
.elementor .tpc-btn { box-shadow: var(--btn-dx) var(--btn-dy) 0 var(--interactive-kante); }
.elementor .tpc-btn--primary:hover,
.elementor .tpc-btn--secondary:hover { box-shadow: calc(var(--btn-dx) - var(--btn-lx)) calc(var(--btn-dy) + 2px) 0 var(--interactive-kante); }
.elementor .tpc-btn--primary:active,
.elementor .tpc-btn--secondary:active { box-shadow: 0 0 0 var(--interactive-kante); }
.elementor .tpc-btn--ghost,
.elementor .tpc-btn--link,
.elementor .tpc-btn:disabled,
.elementor .tpc-btn[aria-disabled="true"] { box-shadow: none; }
