/* Zusatz-CSS der PHP-Blöcke (bauplan.md §5.2): nur bp- Klassen. Alles Weitere gestaltet das Theme (site.css).
   Geladen nur, wenn ein Block diese Klassen ausgibt. Kein Text unter 13 px, Tippziele mindestens 44 px. */

.bp-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Tabellen, die nicht zur Definitionsliste werden, und die Ausführungstabelle: seitlich wischbar, nie breiter als die Seite (M7, M10) */
.bp-tabelle {
  display: block;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin: 0 0 1em;
}
.bp-tabelle table {
  width: 100%;
  border-collapse: collapse;
  font-size: 1rem;
}
.bp-tabelle th,
.bp-tabelle td {
  padding: 8px 10px;
  text-align: left;
  vertical-align: top;
  border-bottom: 1px solid currentColor;
  border-bottom-color: rgba(0, 0, 0, .12);
}
.bp-tabelle th { font-size: 13px; }
.bp-tabelle:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }

/* Weitere Gruppen einer Kategorie (Sortiment-Übersicht) */
.bp-mehr { margin: 8px 0 0; }
.bp-mehr > summary {
  display: flex;
  align-items: center;
  min-height: 44px;
  cursor: pointer;
  font-weight: 600;
}
.bp-mehr > summary:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }

/* Firmendaten, Variante kontakt */
.bp-kontakt { font-style: normal; }
.bp-kontakt ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.bp-kontakt li { display: flex; align-items: center; gap: 8px; min-height: 28px; }
.bp-kontakt a { display: inline-flex; align-items: center; min-height: 44px; }

/* Leistungen-Kacheln (Übersicht der Leistungsseiten). Mobil eine Spalte mit Bild links (alle sieben sofort sichtbar),
   ab 600 px zwei Spalten, ab 960 px drei Spalten mit Bild oben. Ganze Kachel ist der Link (Tippziel >= 44 px). */
.bp-leist { margin-top: var(--s-5, 24px); }
.bp-leist__liste { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s-3, 12px); }
.bp-leist__kachel { display: grid; grid-template-columns: 112px minmax(0, 1fr); align-items: stretch; height: 100%; background: #fff; border: 1px solid var(--bl-linie, #d5dbe1); border-radius: var(--r-m, 14px); overflow: hidden; text-decoration: none; color: inherit; transition: border-color var(--m-base, .2s) var(--m-kurve, ease); }
.bp-leist__kachel:hover { border-color: var(--bl-blau-500, #1a6fb5); color: inherit; }
.bp-leist__bild { display: block; background: var(--weich, #eef1f4); position: relative; min-height: 112px; }
.bp-leist__bild img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 0; }
.bp-leist__text { display: flex; flex-direction: column; gap: var(--s-1, 4px); padding: var(--s-3, 12px) var(--s-3, 12px) var(--s-3, 12px) var(--s-4, 16px); min-width: 0; }
.bp-leist__gruppe { font-size: 13px; font-weight: 700; letter-spacing: .02em; text-transform: uppercase; color: var(--bl-text-2, #4a5560); }
.bp-leist__text h3 { margin: 0; font-size: 1.0625rem; line-height: 1.25; }
.bp-leist__text p { margin: 0; font-size: var(--t-klein, 14px); line-height: 1.4; color: var(--bl-text-2, #4a5560); max-width: none; }
.bp-leist__mehr { display: none; align-items: center; gap: var(--s-2, 8px); margin-top: auto; font-weight: 700; font-size: var(--t-klein, 14px); color: var(--bl-blau-600, #135a94); }
.bp-leist__mehr .b-ico { width: 18px; height: 18px; }
@media (min-width: 600px) {
  .bp-leist__liste { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-4, 16px); }
  .bp-leist__kachel { display: flex; flex-direction: column; }
  .bp-leist__bild { min-height: 0; aspect-ratio: 16 / 10; }
  .bp-leist__text { padding: var(--s-4, 16px) var(--s-4, 16px) var(--s-4, 16px); gap: var(--s-2, 8px); flex: 1; }
  .bp-leist__text h3 { font-size: var(--t-h3, 1.25rem); }
  .bp-leist__mehr { display: inline-flex; padding-top: var(--s-2, 8px); }
}
@media (min-width: 960px) {
  .bp-leist__liste { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-5, 24px); }
}

/* Kacheln (Inhaberbefund 2026-10-19): gleiche Höhe je Raster auch über Zeilen, Titel ohne Wortbruch ohne Trennstrich */
.bp-leist__liste { grid-auto-rows: 1fr; }
.bp-leist__liste > li { display: flex; min-width: 0; }
.bp-leist__kachel { flex: 1; min-width: 0; }
.bp-leist__text h3 { hyphens: manual; overflow-wrap: normal; word-break: normal; }
