/* KA Vereinsleben – GPL-3.0-or-later. No external assets or trackers. */
.ka-vereinsleben{--ka-vl-blue:#3d4778;--ka-vl-red:#e03e2d;color:inherit}
.ka-vereinsleben .ka-vl-posters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.ka-vereinsleben .ka-vl-poster{margin:0;min-width:0}
.ka-vereinsleben .ka-vl-poster>a{display:block}
.ka-vereinsleben .ka-vl-poster img{display:block;width:100%;height:auto;object-fit:contain}
.ka-vereinsleben .ka-vl-poster figcaption{font-size:.9em;line-height:1.5;margin-top:12px;color:var(--ka-vl-blue);overflow-wrap:anywhere}
.ka-vereinsleben a:focus-visible{outline:2px solid var(--ka-vl-blue);outline-offset:4px}
.ka-vl-notice{padding:8px 0;color:#842029}
.ka-vereinsleben .ka-vl-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@media(max-width:767px){.ka-vereinsleben .ka-vl-poster{max-width:500px;width:100%;margin:0 auto}}

/* Transparent action hint; space reserved to prevent layout jumps. */
.ka-vereinsleben .ka-vl-poster>a{background:none;padding-left:0;text-decoration:none}
.ka-vereinsleben .ka-vl-poster-hint{display:block;visibility:hidden;margin-top:10px;padding:0;background:transparent;color:#c52218;font-size:1rem;font-weight:700;line-height:1.5;text-align:center;overflow-wrap:anywhere}
.ka-vereinsleben .ka-vl-poster>a:hover .ka-vl-poster-hint,.ka-vereinsleben .ka-vl-poster>a:focus-visible .ka-vl-poster-hint{visibility:visible}
@media(hover:none){.ka-vereinsleben .ka-vl-poster-hint{visibility:visible}}

/* One scrollable row, without automatic advancement. */
.ka-vereinsleben .ka-vl-carousel{min-width:0}
.ka-vereinsleben .ka-vl-carousel .ka-vl-posters{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:0;align-items:flex-start;padding:4px 4px 12px}
.ka-vereinsleben .ka-vl-carousel .ka-vl-poster{flex:0 0 calc((100% - 40px)/3);max-width:none;scroll-snap-align:start}
/* Dots sit below the posters; native scrolling remains available. */
.ka-vereinsleben .ka-vl-carousel .ka-vl-posters{scrollbar-width:none}
.ka-vereinsleben .ka-vl-carousel .ka-vl-posters::-webkit-scrollbar{display:none}
.ka-vereinsleben .ka-vl-carousel-controls{display:flex;justify-content:center;flex-wrap:wrap;gap:0;margin-top:12px}
.ka-vereinsleben .ka-vl-carousel-controls[hidden]{display:none}
.ka-vereinsleben .ka-vl-carousel-controls .ka-vl-dot{display:grid;place-items:center;background:transparent;border:0;padding:0;width:44px;height:44px;cursor:pointer}
.ka-vereinsleben .ka-vl-dot::before{content:"";display:block;box-sizing:border-box;width:10px;height:10px;border:1px solid var(--ka-vl-blue);border-radius:50%;background:transparent}
.ka-vereinsleben .ka-vl-dot[aria-current="true"]::before{background:var(--ka-vl-red);border-color:var(--ka-vl-red);transform:scale(1.2)}
.ka-vereinsleben .ka-vl-dot:focus-visible{outline:2px solid var(--ka-vl-blue);outline-offset:-4px;border-radius:4px}
@media(max-width:767px){.ka-vereinsleben .ka-vl-carousel .ka-vl-poster{flex-basis:100%;margin:0}}

@media(hover:hover) and (pointer:fine){.ka-vereinsleben .ka-vl-carousel .ka-vl-posters{cursor:grab}.ka-vereinsleben .ka-vl-carousel .ka-vl-posters a{cursor:grab}}
.ka-vereinsleben .ka-vl-carousel .ka-vl-track.ka-vl-dragging{scroll-snap-type:none;user-select:none;cursor:grabbing}
.ka-vereinsleben .ka-vl-carousel .ka-vl-track.ka-vl-dragging a{cursor:grabbing}



