:root{ --wf-accent: var(--wf-blue, #0e6ba8); --wf-gray:#f3f4f6; --wf-line:#e5e7eb; }
.wf-events{ display:block; }
.wf-filter{ display:flex; gap:.5rem; flex-wrap:wrap; 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 button{ background:var(--wf-accent); color:#fff; border:none; cursor:pointer; }
.wf-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 .wf-thumb img{ width:100%; height:180px; object-fit:cover; display:block; }
.wf-card-link{ text-decoration:none; color:inherit; display:block; padding:0; }
.wf-meta{ padding:0.9rem 1rem; }
.wf-badge{ display:inline-block; font-size:12px; padding:.15rem .5rem; border-radius:999px; border:1px solid var(--wf-accent); color:var(--wf-accent); margin-bottom:.4rem; }
.wf-card.is-sponsored .wf-badge{ background:var(--wf-accent); color:#fff; }
.wf-meta h3{ margin:.3rem 0 .2rem; font-size:1.05rem; }
.wf-loc{ color:#555; font-size:.92rem; }
.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; }
.wf-pagination{ margin-top:1rem; text-align:center; }
.wf-badge{ display:none; }

/* Single */
.wf-single .wf-head{ background:var(--wf-gray); border:1px solid var(--wf-line); border-radius:16px; padding:1rem; margin-bottom:1rem; display:flex; flex-wrap:wrap; gap:.8rem; align-items:center; justify-content:space-between; }
.wf-single .wf-cta .wf-btn{ margin-right:.5rem; }
.wf-filter { display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; }
.wf-filter .wf-filter-actions { margin-left:auto; display:flex; gap:.5rem; }
.wf-filter .wf-btn { padding:.5rem .8rem; border-radius:10px; border:1px solid var(--wf-accent); }
.wf-filter .wf-btn { background:var(--wf-accent); color:#fff; }
.wf-filter .wf-btn.ghost { background:transparent; color:var(--wf-accent); }
.wf-hidden { display:none !important; } /* blendet die Unix TS Felder im Backend aus */

/* Calendar */
.wf-cal{ border:1px solid var(--wf-line); border-radius:16px; overflow:hidden; background:#fff; margin:1rem 0; }
.wf-cal-head{ display:flex; align-items:center; justify-content:space-between; padding:.6rem .8rem; background:var(--wf-gray); border-bottom:1px solid var(--wf-line); }
.wf-cal-title{ font-weight:600; }
.wf-cal-nav{ text-decoration:none; padding:.2rem .5rem; border-radius:8px; border:1px solid var(--wf-line); }
.wf-cal-grid{ display:grid; grid-template-columns:repeat(7,1fr); }
.wf-cal-dow > div{ padding:.4rem; text-align:center; font-size:.9rem; color:#555; background:#fafafa; border-bottom:1px solid var(--wf-line); }
.wf-cal-cell{ min-height:120px; border-right:1px solid var(--wf-line); border-bottom:1px solid var(--wf-line); padding:.4rem; }
.wf-cal-cell:nth-child(7n){ border-right:none; }
.wf-cal-cell.is-empty{ background:#fafafa; }
.wf-cal-day{ font-weight:600; margin-bottom:.3rem; }
/* Kalender-Items: umbrechen, max. 2 Zeilen */
.wf-cal-item{
  display:block;
  text-decoration:none;
  margin:.15rem 0;
  overflow:hidden;
  white-space:normal;          /* <-- statt nowrap */
  word-break:break-word;       /* lange Wörter/URLs umbrechen */
  display:-webkit-box;         /* optional: 2 Zeilen clamp */
  -webkit-line-clamp:2;        /* optional */
  -webkit-box-orient:vertical; /* optional */
}
.wf-cal-more{ font-size:.85rem; opacity:.7; }
.wf-cpe{ margin-top:.25rem; font-size:.9rem; font-weight:600; }
