:root{
  --ink:#1f2937; --muted:#6b7280; --line:#e5e7eb; --bg:#f8fafc;
  --chip:#fff; --crest:72px;                       /* Wappen-Größe Desktop */
  --fb:#1877F2; --ig:#E4405F; --wa:#25D366; --web:#0EA5E9; --mail:#475569;

  /* Instagram-Gradient (Fallbacks beachten) */
  --ig-grad: radial-gradient(circle at 30% 107%,
  #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285AEB 90%);
}

.wrapper--vereine{max-width:1100px; margin:1.5rem auto; padding:0 1rem;}
.view-title{font-size:1.6rem; margin:0 0 1rem;}

ul.list{
  list-style:none; padding:0; margin:0;
  border:1px solid var(--line); border-radius:14px; overflow:hidden; background:#fff;
}
ul.list > li.row{
  padding:1rem 1.25rem; border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,#fff,#fafafa);
}
ul.list > li.row:nth-child(odd){background:#fcfdff;}
ul.list > li.row:last-child{border-bottom:none;}

/* Innenlayout: Wappen | Inhalt – alles linksbündig auf einer Flucht */
.v-grid{
  display:grid; grid-template-columns: var(--crest) 1fr; gap:1rem; align-items:start;
}

/* Wappen größer + feiner Hover */
.v-crest img{
  width:var(--crest); height:var(--crest);
  border-radius:14px; border:1px solid var(--line); object-fit:cover;
  box-shadow:0 1px 0 rgba(0,0,0,.02);
  transition:transform .15s ease, box-shadow .15s ease;
}
.v-crest img:hover{ transform:translateY(-1px); box-shadow:0 6px 12px rgba(0,0,0,.06); }

/* Titel ohne Link, 2-zeilig clampen */
.v-name{
  margin:.15rem 0 .35rem; font-size:1.08rem; font-weight:800; color:var(--ink);
  overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
}
.v-content{ display:flex; flex-direction:column; gap:.3rem; }

/* Meta-Zeilen kompakt */
.v-line{ display:flex; align-items:baseline; gap:.5rem; color:var(--muted); line-height:1.35; }
.v-line i{ opacity:.9; }

/* Adresse inline (neben Icon) – „Deutschland“ ausblenden & saubere Interpunktion */
.v-line--address p.address{ display:inline; margin:0; }
.v-line--address br{ display:none; }
.v-line--address .address-line1::after{ content:", "; }
.v-line--address .postal-code::after{ content:" "; }
.v-line--address .locality::after{ content:""; }   /* kein Komma mehr danach */
.v-line--address .country{ display:none; }         /* „Deutschland“ verstecken */

/* Kontakt-Buttons linksbündig unter dem Text */
.v-links{
  display:flex; flex-wrap:wrap; gap:.5rem; margin-top:.25rem; justify-content:flex-start;
}

.v-btn{
  display:inline-flex; align-items:center; gap:.5rem;
  padding:.42rem .7rem; font-weight:600; font-size:.88rem; line-height:1;
  border:1px solid var(--line); border-radius:999px; background:var(--chip); color:var(--ink); text-decoration:none;
  box-shadow:0 1px 0 rgba(0,0,0,.02);
}
.v-btn i{
  width:22px; height:22px; border-radius:999px; display:inline-grid; place-items:center; color:#fff;
}
.v-btn:hover{ transform:translateY(-1px); box-shadow:0 6px 14px rgba(0,0,0,.06); }
.v-btn:focus-visible{ outline:2px solid color-mix(in srgb, var(--web) 60%, white); outline-offset:2px; }

/* Markenfarben für die Icon-Bubbles */
.v-btn--fb i{ background:var(--fb); }
.v-btn--wa i{ background:var(--wa); }
.v-btn--web i{ background:var(--web); }
.v-btn--mail i{ background:var(--mail); }

/* Instagram mit Gradient */
.v-btn--ig i{
  background:#E4405F;                    /* Fallback */
  background-image:var(--ig-grad);       /* Farbverlauf */
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.4),
    0 1px 1px rgba(0,0,0,.06);
}
.v-btn--ig:hover i{ filter:saturate(1.1) brightness(1.03); }

/* Mobile: Wappen etwas kleiner, Typ minimal runter */
@media (max-width:700px){
  :root{ --crest:56px; }
  .v-name{ font-size:1.02rem; }
}
