/* K.Solutions – Bridge-CSS
   ============================================================================
   Einzige Schicht, die zwischen dem unveränderten Referenz-Stylesheet und der
   WordPress-Umgebung vermittelt. styles.css bleibt bewusst unangetastet.

   Regeln hier nutzen :where() – Spezifität 0. Damit gewinnt das Referenz-CSS
   immer, unabhängig von der Ladereihenfolge der Plugin-Stylesheets.
   ========================================================================== */

/* --- 1. WordPress-Blockcontainer neutralisieren -------------------------- */
:where(.wp-block-group),
:where(.wp-block-group__inner-container) {
  margin: 0;
  padding: 0;
  max-width: none;
}
:where(.entry-content > *) { margin-block: 0; }

/* --- 2. Admin-Leiste: fixierter Header darf nicht darunter verschwinden -- */
body.admin-bar .topbar { top: 32px; }
body.admin-bar .site-header { top: calc(32px + var(--topbar-h, 38px)); }
body.admin-bar { --anchor-offset: calc(var(--header-h) + var(--anchor-gap) + 32px); }

@media screen and (max-width: 782px) {
  body.admin-bar .topbar { top: 46px; }
  body.admin-bar .site-header { top: calc(46px + var(--topbar-h, 38px)); }
  body.admin-bar { --anchor-offset: calc(var(--header-h) + var(--anchor-gap) + 46px); }
}
@media screen and (max-width: 600px) {
  /* Unterhalb 600px scrollt die Admin-Leiste mit – kein Offset nötig. */
  body.admin-bar .topbar,
  body.admin-bar .site-header { top: auto; }
}

/* --- 3. Bilder aus der Mediathek verhalten sich wie in der Vorschau ------ */
:where(.wp-block-image img),
:where(img.wp-post-image) { max-width: 100%; height: auto; }
figure:where(.wp-block-image) { margin: 0; }

/* Von WordPress ergänzte Größenklassen dürfen die Layoutbreite nicht kapern. */
:where(img[class*="wp-image-"]) { width: 100%; height: auto; }
.mock :where(img[class*="wp-image-"]),
.work-media :where(img[class*="wp-image-"]) { width: 100%; height: 100%; }

/* --- 4. Inhalt ohne eigene Sektionsstruktur (z. B. Plugin-Seiten) -------- */
.prose :where(.wp-block-table) { width: 100%; overflow-x: auto; display: block; }
.prose :where(ul, ol) { padding-left: 1.3rem; }

/* --- 5. Fremde Standard-Stile abfangen ----------------------------------- */
:where(.screen-reader-text) {
  position: absolute !important;
  width: 1px; height: 1px; overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
  white-space: nowrap; border: 0; padding: 0; margin: -1px;
}

/* --- 6. Formularstatus vom Server: gleiche Optik wie die JS-Variante ----- */
.form-status[hidden] { display: none; }

/* --- 7. Hinweis auf der Konfigurator-Seite ohne JavaScript ---------------- */
.funnel-noscript {
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--radius-lg); padding: 2rem 1.8rem; text-align: center;
}
.funnel-noscript p { margin: 0 0 .9rem }
.funnel-noscript p:last-child { margin: 1.3rem 0 0; display: flex; gap: .7rem; justify-content: center; flex-wrap: wrap }
