.fb-firma-wrap,
.fb-firma-wrap * { box-sizing: border-box; }
.fb-firma-wrap { width: 100%; max-width: 100%; }
.fb-firma-grid { display: grid; width: 100%; max-width: 100%; align-items: stretch; }
.fb-firma-grid.columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fb-firma-grid.columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.fb-firma-grid.columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.fb-firma-card { min-width: 0; max-width: 100%; height: 100%; display: flex; flex-direction: column; overflow-wrap: anywhere; background-clip: padding-box; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease, background-color .2s ease; }
.fb-firma-card.has-hover:hover,
.fb-firma-card.has-hover:focus-within { transform: translateY(calc(-1 * var(--fb-hover-lift, 3px))); box-shadow: var(--fb-hover-shadow, 0 8px 24px rgba(0,0,0,.14)); border-color: var(--fb-hover-border, currentColor); background-color: var(--fb-hover-bg, inherit); }
.fb-firma-field { margin: 0 0 .55rem; }
.fb-firma-name { margin-top: 0; margin-bottom: .35rem; line-height: 1.2; font-family: inherit; }
.fb-firma-beschreibung p { margin-top: 0; margin-bottom: .55rem; }
.fb-firma-beschreibung p:last-child { margin-bottom: 0; }
.fb-firma-logo { margin-bottom: .8rem; }
.fb-firma-logo-image { display: inline-block; object-fit: contain; }
.fb-firma-contact-row { display: flex; align-items: baseline; gap: .35em; }
.fb-firma-icon { display: inline-flex; flex: 0 0 1.25em; width: 1.25em; height: 1.25em; align-items: center; justify-content: center; position: relative; top: .12em; }
.fb-firma-icon-svg { width: 1em; height: 1em; display: block; }
.fb-firma-contact-content { min-width: 0; }
.fb-firma-kontaktbutton { margin-top: auto; padding-top: .35rem; }
.fb-firma-wrap a { color: inherit; text-decoration-thickness: .08em; text-underline-offset: .15em; }
.fb-firma-wrap a:hover { text-decoration-thickness: .12em; }
.fb-firma-wrap a:focus-visible,
.fb-firma-contact-button:focus-visible { outline: 3px solid currentColor; outline-offset: 3px; }
.fb-firma-contact-button { display: inline-flex; align-items: center; justify-content: center; max-width: 100%; min-height: 44px; padding: .65em 1em; border: 2px solid transparent; border-radius: 4px; background: var(--global-palette1, #1f5fa9); color: #fff !important; font: inherit; line-height: 1.2; text-decoration: none; text-align: center; }
.fb-firma-contact-button:hover { filter: brightness(.92); }
.fb-firma-empty { padding: 1rem; border: 1px dashed currentColor; }
.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; }
@media (max-width: 1024px) { .fb-firma-grid.columns-3, .fb-firma-grid.columns-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .fb-firma-grid.columns-2, .fb-firma-grid.columns-3, .fb-firma-grid.columns-4 { grid-template-columns: minmax(0, 1fr); } .fb-firma-card { min-height: 0; } }
@media (prefers-reduced-motion: reduce) { .fb-firma-card { transition: none; } .fb-firma-card.has-hover:hover, .fb-firma-card.has-hover:focus-within { transform: none; } }

/* Address is stored in two fields and rendered as two predictable lines. */
.fb-firma-adresse {
  font-style: normal;
}
.fb-firma-address-line {
  display: block;
}


/* Accessible, block-configurable pagination after 12 company cards. */
.fb-firma-pagination {
  margin-top: var(--fb-pagination-margin-top, 24px);
  color: var(--fb-pagination-text, inherit);
  font-family: var(--fb-pagination-font-family, inherit);
  font-size: var(--fb-pagination-font-size, inherit);
  font-weight: var(--fb-pagination-font-weight, inherit);
  border-width: var(--fb-pagination-outer-border-width, 0);
  border-style: var(--fb-pagination-outer-border-style, solid);
  border-color: var(--fb-pagination-outer-border, transparent);
  border-radius: var(--fb-pagination-outer-radius, 0);
  padding: var(--fb-pagination-outer-pad-y, 0) var(--fb-pagination-outer-pad-x, 0);
  background-color: var(--fb-pagination-outer-bg, transparent);
}

.fb-firma-pagination .page-numbers {
  display: flex;
  flex-wrap: wrap;
  gap: var(--fb-pagination-gap, 8px);
  align-items: center;
  justify-content: var(--fb-pagination-justify, center);
  margin: 0;
  padding: 0;
  list-style: none;
}
.fb-firma-pagination .page-numbers li { margin: 0; }
.fb-firma-pagination a.page-numbers,
.fb-firma-pagination span.page-numbers {
  display: inline-flex;
  min-width: var(--fb-pagination-min-size, 44px);
  min-height: var(--fb-pagination-min-size, 44px);
  padding: var(--fb-pagination-pad-y, 8px) var(--fb-pagination-pad-x, 12px);
  align-items: center;
  justify-content: center;
  border-width: var(--fb-pagination-border-width, 1px);
  border-style: var(--fb-pagination-border-style, solid);
  border-color: var(--fb-pagination-border, currentColor);
  border-radius: var(--fb-pagination-radius, 4px);
  background-color: var(--fb-pagination-bg, transparent);
  color: var(--fb-pagination-text, inherit);
  line-height: 1;
  text-decoration: none;
  transition: color .15s ease, background-color .15s ease, border-color .15s ease;
}
.fb-firma-pagination span.page-numbers.current {
  color: var(--fb-pagination-active-text, var(--fb-pagination-text, inherit));
  background-color: var(--fb-pagination-active-bg, var(--fb-pagination-bg, transparent));
  border-color: var(--fb-pagination-active-border, var(--fb-pagination-border, currentColor));
  font-weight: 700;
}
.fb-firma-pagination a.page-numbers:hover {
  color: var(--fb-pagination-hover-text, var(--fb-pagination-text, inherit));
  background-color: var(--fb-pagination-hover-bg, var(--fb-pagination-bg, transparent));
  border-color: var(--fb-pagination-hover-border, var(--fb-pagination-border, currentColor));
}
.fb-firma-pagination a.page-numbers:focus-visible {
  outline: 3px solid currentColor;
  outline-offset: 3px;
}
@media (prefers-reduced-motion: reduce) {
  .fb-firma-pagination a.page-numbers,
  .fb-firma-pagination span.page-numbers { transition: none; }
}
