:root{ --wf-accent: var(--wf-blue, #0e6ba8); --wf-gray:#f3f4f6; --wf-line:#e5e7eb; }

/* --- FILTER & GRID (Directory-Liste) --- */
.wf-filter{ display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; padding:.75rem; background:var(--wf-gray); border:1px solid var(--wf-line); border-radius:12px; margin-bottom:1rem; }
.wf-filter input, .wf-filter select, .wf-filter button{ padding:.5rem .6rem; border:1px solid var(--wf-line); border-radius:10px; }
.wf-filter .wf-filter-actions{ margin-left:auto; display:flex; gap:.5rem; }
.wf-filter .wf-btn{ background:var(--wf-accent); color:#fff; border:none; cursor:pointer; }
.wf-filter .wf-btn.ghost{ background:transparent; color:var(--wf-accent); border:1px solid var(--wf-accent); }

.wf-dir-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:1rem; }
.wf-card{ background:#fff; border:1px solid var(--wf-line); border-radius:16px; overflow:hidden; display:flex; flex-direction:column; justify-content:space-between; }
.wf-card-link{ text-decoration:none; color:inherit; display:block; }
.wf-thumb{ display:flex; align-items:center; justify-content:center; background:#fff; padding:1rem; border-bottom:1px solid var(--wf-line); }
.wf-thumb img{ max-height:60px; width:auto; height:auto; }
.wf-meta{ padding:0.9rem 1rem; }
.wf-meta h3{ margin:.3rem 0 .2rem; font-size:1.06rem; font-weight:600; }
.wf-loc{ color:#555; font-size:.92rem; margin:.1rem 0 .35rem; }
.wf-excerpt{ color:#222; font-size:.95rem; line-height:1.35; }
.wf-actions{ display:flex; gap:.5rem; padding:0 1rem 1rem; }
.wf-btn{ padding:.5rem .8rem; border-radius:10px; background:var(--wf-accent); color:#fff; text-decoration:none; }
.wf-btn.ghost{ background:transparent; color:var(--wf-accent); border:1px solid var(--wf-accent); }
.wf-empty{ padding:2rem; text-align:center; background:var(--wf-gray); border:1px dashed var(--wf-line); border-radius:12px; }

/* Random Spot */
.wf-spot{ border:1px solid var(--wf-line); border-radius:16px; padding:1rem; margin:1rem 0; background:#fff; }
.wf-spot-logo{ display:flex; align-items:center; justify-content:center; border-bottom:1px solid var(--wf-line); padding-bottom:.6rem; margin-bottom:.6rem; }
.wf-spot img{ max-height:50px; }

/* Dezente CPE-Optik für Karten */
.wf-cpe{ margin-top:.25rem; font-size:.9rem; font-weight:600; }

/* --- PROVIDER SINGLE --- */
.wf-prov{ --wf-accent: var(--wf-blue, #0e6ba8); }

/* Hero – mit Bild */
.wf-prov-hero{ position:relative; border:1px solid var(--wf-line); border-radius:16px; overflow:hidden; }
.wf-prov-hero.hasimg img{ width:100%; height:280px; object-fit:cover; display:block; }
.wf-prov-hero-overlay{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,.25), rgba(0,0,0,.45)); }
.wf-prov-hero.hasimg .wf-prov-head{ position:absolute; left:0; right:0; bottom:0; padding:1rem; color:#fff; display:flex; gap:1rem; align-items:flex-end; flex-wrap:wrap; }

/* Hero – Fallback ohne Bild */
.wf-prov-hero.noimg{ min-height:140px; background:linear-gradient(90deg, var(--wf-accent), #3b82f6); display:flex; align-items:center; }
.wf-prov-hero.noimg .wf-prov-head{ position:relative; width:100%; padding:.8rem 1rem; color:#fff; display:flex; gap:1rem; align-items:flex-end; flex-wrap:wrap; }

/* Branding/Chips/CTAs */
.wf-prov-brand{ display:flex; flex-direction:column; gap:.25rem; }
.wf-prov-logo img{ max-height:56px; max-width:220px; object-fit:contain; background:#fff; padding:.25rem .5rem; border-radius:8px; filter: drop-shadow(0 1px 2px rgba(0,0,0,.2)); }
.wf-prov-tag{ opacity:.95; }
.wf-prov-loc{ opacity:.9; font-size:.95rem; }
.wf-prov-chips{ display:flex; gap:.4rem; flex-wrap:wrap; margin-top:.25rem; }
.wf-chip{ background:#fff; color:#111; border-radius:999px; padding:.1rem .6rem; font-size:.85rem; }

.wf-prov-ctas{ margin-left:auto; display:flex; gap:.5rem; flex-wrap:wrap; }
.wf-prov-ctas .wf-btn{ background:#fff; color:var(--wf-accent); border:1px solid #fff; }
.wf-prov-ctas .wf-btn.ghost{ background:transparent; color:#fff; border-color:#fff; }

/* Body-Layout */
.wf-prov-body{ display:grid; grid-template-columns: 1fr 280px; gap:1rem; margin-top:1rem; }
@media (max-width: 920px){ .wf-prov-body{ grid-template-columns: 1fr; } }

.wf-prov-services, .wf-prov-contact{ border:1px solid var(--wf-line); border-radius:12px; padding:1rem; background:#fff; }
.wf-prov-services h2, .wf-prov-contact h2{ margin-top:0; font-size:1.05rem; }
.wf-prov-services ul{ margin:0; padding-left:1.1rem; }

.wf-prov-excerpt{ border-left:4px solid var(--wf-accent); padding:.5rem .75rem; background:#f8fafc; border-radius:6px; margin-bottom:1rem; }
.wf-prov-content p{ line-height:1.6; }
.wf-prov-contact .line{ margin:.2rem 0; }
