/* FixKlar Firmenverzeichnis 0.6.13 */
.single-firma,
.single-leistung,
.single-region {
  --fk-company-orange:#d97816;
  --fk-company-orange-dark:#a84f0b;
  --fk-company-navy:#17324d;
  --fk-company-blue:#244f73;
  --fk-company-green:#24724f;
  --fk-company-cream:#fff8ef;
  --fk-company-line:#dfe7ee;
  --fk-company-text:#25313c;
  --fk-company-muted:#637282;
}

.single-leistung .fk-company-results,
.single-region .fk-company-results {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px;
  margin:22px 0 8px;
}

.single-leistung .fk-company-card,
.single-region .fk-company-card {
  position:relative;
  display:flex;
  min-width:0;
  min-height:100%;
  flex-direction:column;
  padding:24px;
  overflow:hidden;
  border:1px solid var(--fk-company-line);
  border-radius:20px;
  background:#fff;
  box-shadow:0 10px 28px rgba(23,50,77,.08);
}

.single-leistung .fk-company-card.is-highlighted,
.single-region .fk-company-card.is-highlighted {
  border-color:#e7ad6b;
  box-shadow:0 14px 34px rgba(168,79,11,.15);
}

.single-leistung .fk-company-card.is-highlighted::before,
.single-region .fk-company-card.is-highlighted::before {
  position:absolute;
  inset:0 0 auto;
  height:5px;
  background:var(--fk-company-orange);
  content:"";
}

.fk-company-card__badges {
  display:flex;
  min-height:28px;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:14px;
}

.fk-company-card__badge,
.fk-featured-label {
  display:inline-flex;
  align-items:center;
  width:max-content;
  padding:6px 10px;
  border-radius:999px;
  font-size:13px;
  font-weight:800;
  line-height:1;
}

.fk-company-card__badge--featured,
.fk-featured-label {
  border:1px solid #efc18c;
  background:var(--fk-company-cream);
  color:#7a3b08;
}

.fk-company-card__badge--verified {
  border:1px solid #b9dfcb;
  background:#edf8f2;
  color:#17603f;
}

.fk-company-card__head {
  display:grid;
  grid-template-columns:76px minmax(0,1fr);
  gap:16px;
  align-items:center;
}

.fk-company-card__logo {
  width:76px;
  height:76px;
  padding:8px;
  border:1px solid var(--fk-company-line);
  border-radius:16px;
  background:#fff;
  object-fit:contain;
}

.fk-company-card__head h3 {
  margin:0 0 5px;
  color:var(--fk-company-navy);
  font-size:clamp(20px,2.2vw,25px);
  line-height:1.25;
}

.fk-company-card__location {
  margin:0;
  color:var(--fk-company-muted);
  font-size:15px;
  font-weight:700;
}

.fk-company-card__summary {
  display:-webkit-box;
  margin:17px 0 14px;
  overflow:hidden;
  color:var(--fk-company-text);
  line-height:1.55;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
}

.fk-company-card__services {
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-bottom:15px;
}

.fk-company-card__services span {
  padding:6px 9px;
  border:1px solid #efd0ac;
  border-radius:999px;
  background:var(--fk-company-cream);
  color:#7a3b08;
  font-size:13px;
  font-weight:750;
}

.fk-company-card__facts {
  display:flex;
  flex-wrap:wrap;
  gap:7px 16px;
  margin:0 0 18px;
  padding:0;
  color:#405263;
  font-size:14px;
  list-style:none;
}

.fk-company-card__facts li::before {
  margin-right:6px;
  color:var(--fk-company-green);
  content:"✓";
  font-weight:900;
}

.fk-company-card__actions {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:auto;
}

.single-leistung .fk-company-card__actions .fk-button,
.single-region .fk-company-card__actions .fk-button {
  width:auto;
  min-height:46px;
  padding:10px 14px;
  font-size:14px;
}

.single-firma .fk-company-hero-actions {
  display:flex;
  flex-direction:column;
  gap:10px;
  align-items:flex-end;
}

.single-firma .fk-company-info-row {
  display:grid;
  grid-template-columns:minmax(150px,200px) minmax(0,1fr);
  gap:18px;
  padding:14px 0;
  border-bottom:1px solid var(--fk-company-line);
}

.single-firma .fk-company-info-row:last-child {border-bottom:0;}
.single-firma .fk-company-info-row>strong {color:var(--fk-company-navy);}
.single-firma .fk-company-info-row p {margin:0;}

.single-firma .fk-company-gallery {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}

.single-firma .fk-company-gallery figure {
  aspect-ratio:4/3;
  margin:0;
  overflow:hidden;
  border-radius:14px;
  background:#eef2f5;
}

.single-firma .fk-company-gallery__image {
  width:100%;
  height:100%;
  object-fit:cover;
}

@media (max-width:900px) {
  .single-leistung .fk-company-results,
  .single-region .fk-company-results {grid-template-columns:1fr;}
}

@media (max-width:680px) {
  .single-leistung .fk-company-card,
  .single-region .fk-company-card {padding:20px;}
  .fk-company-card__head {grid-template-columns:62px minmax(0,1fr);gap:13px;}
  .fk-company-card__logo {width:62px;height:62px;border-radius:13px;}
  .fk-company-card__actions {grid-template-columns:1fr;}
  .single-firma .fk-company-hero-actions {grid-column:1/-1;align-items:flex-start;}
  .single-firma .fk-company-info-row {grid-template-columns:1fr;gap:4px;}
  .single-firma .fk-company-gallery {grid-template-columns:repeat(2,minmax(0,1fr));}
}

@media (max-width:420px) {
  .single-firma .fk-company-gallery {grid-template-columns:1fr;}
}

/*
 * Legacy layout isolation.
 * Several older Region and Leistung styles are intentionally left untouched,
 * but they use broad !important grid rules. These selectors protect only the
 * new company-directory component and therefore do not restyle old content.
 */
html body.single-region .fk-region-template > section.fk-provider .fk-company-results,
html body.single-leistung .fk-service-wrap .fk-company-results {
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:20px!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
}

html body.single-region .fk-region-template .fk-company-results > article.fk-company-card,
html body.single-leistung .fk-service-wrap .fk-company-results > article.fk-company-card {
  display:flex!important;
  grid-template-columns:none!important;
  grid-template-areas:none!important;
  flex-direction:column!important;
  align-items:stretch!important;
  gap:0!important;
  width:auto!important;
  min-width:0!important;
  min-height:100%!important;
  height:100%!important;
  padding:24px!important;
}

html body.single-region .fk-region-template .fk-company-card > *,
html body.single-leistung .fk-service-wrap .fk-company-card > * {
  grid-area:auto!important;
  min-width:0!important;
}

html body.single-region .fk-region-template .fk-company-card .fk-company-card__head,
html body.single-leistung .fk-service-wrap .fk-company-card .fk-company-card__head {
  display:grid!important;
  grid-template-columns:76px minmax(0,1fr)!important;
  grid-template-areas:none!important;
  gap:16px!important;
  align-items:center!important;
}

html body.single-region .fk-region-template .fk-company-card img.fk-company-card__logo,
html body.single-leistung .fk-service-wrap .fk-company-card img.fk-company-card__logo,
html body.single-firma img.fk-company-logo {
  grid-area:auto!important;
  width:76px!important;
  height:76px!important;
  padding:8px!important;
  border:1px solid rgba(255,255,255,.4)!important;
  background:linear-gradient(145deg,#17324d,#244f73)!important;
  box-shadow:0 7px 18px rgba(23,50,77,.18)!important;
  filter:drop-shadow(0 2px 3px rgba(23,50,77,.28));
  object-fit:contain!important;
}

html body.single-region .fk-region-template .fk-company-card .fk-company-card__head h3,
html body.single-leistung .fk-service-wrap .fk-company-card .fk-company-card__head h3 {
  grid-area:auto!important;
  margin:0 0 5px!important;
  font-size:clamp(20px,2.2vw,25px)!important;
  line-height:1.25!important;
}

html body.single-region .fk-region-template .fk-company-card .fk-company-card__actions,
html body.single-leistung .fk-service-wrap .fk-company-card .fk-company-card__actions {
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:10px!important;
  margin-top:auto!important;
}

@media (max-width:900px) {
  html body.single-region .fk-region-template > section.fk-provider .fk-company-results,
  html body.single-leistung .fk-service-wrap .fk-company-results {
    grid-template-columns:1fr!important;
  }
}

@media (max-width:680px) {
  html body.single-region .fk-region-template .fk-company-results > article.fk-company-card,
  html body.single-leistung .fk-service-wrap .fk-company-results > article.fk-company-card {
    padding:20px!important;
  }

  html body.single-region .fk-region-template .fk-company-card .fk-company-card__head,
  html body.single-leistung .fk-service-wrap .fk-company-card .fk-company-card__head {
    grid-template-columns:62px minmax(0,1fr)!important;
    gap:13px!important;
  }

  html body.single-region .fk-region-template .fk-company-card img.fk-company-card__logo,
  html body.single-leistung .fk-service-wrap .fk-company-card img.fk-company-card__logo {
    width:62px!important;
    height:62px!important;
  }

  html body.single-region .fk-region-template .fk-company-card .fk-company-card__actions,
  html body.single-leistung .fk-service-wrap .fk-company-card .fk-company-card__actions {
    grid-template-columns:1fr!important;
  }
}
