Hinweis:
- Bild-Pfade (oid://image/...) bitte durch die echten Bild-Verweise ersetzen.
- Seitenlinks (oid://page/de$...) bitte durch die echten Seitennamen ersetzen.
Bild (Handy Hochformat)

<style>
/* ==========================================================
TSV Heising – Linkboxen
Breakpoints:
- Desktop >= 1024px : 6 Spalten (6 + 5 Boxen, letzte Reihe zentriert)
- Tablet >= 768px : 4 Spalten
- Handy quer / klein-Tablet >= 560px : 3 Spalten
- Handy hoch < 560px : 2 Spalten (Kundenwunsch)
========================================================== */
.tsvh-wrap {
box-sizing: border-box !important;
width: 100% !important;
max-width: 1280px !important;
margin: 0 auto !important;
padding: 24px 16px !important;
background: #eaf6ff !important;
}
.tsvh-wrap *,
.tsvh-wrap *::before,
.tsvh-wrap *::after {
box-sizing: border-box !important;
}
/* Flex statt Grid: ermöglicht zentrierte letzte Reihe */
.tsvh-grid {
display: flex !important;
flex-wrap: wrap !important;
justify-content: center !important;
gap: 16px !important;
margin: 0 !important;
padding: 0 !important;
list-style: none !important;
}
.tsvh-item {
margin: 0 !important;
padding: 0 !important;
list-style: none !important;
/* 6 Spalten: (100% - 5 Gaps) / 6 */
flex: 0 0 calc((100% - 80px) / 6) !important;
max-width: calc((100% - 80px) / 6) !important;
}
.tsvh-card {
display: flex !important;
flex-direction: column !important;
align-items: center !important;
justify-content: center !important;
height: 100% !important;
min-height: 190px !important;
padding: 22px 12px 18px !important;
background: #ffffff !important;
border-radius: 6px !important;
border-bottom: 4px solid transparent !important;
box-shadow: 0 1px 3px rgba(0, 40, 80, 0.08) !important;
text-decoration: none !important;
text-align: center !important;
transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease !important;
-webkit-tap-highlight-color: transparent;
}
.tsvh-card:link,
.tsvh-card:visited {
color: #2b2b2b !important;
text-decoration: none !important;
}
.tsvh-card:hover,
.tsvh-card:focus-visible {
transform: translateY(-5px) !important;
box-shadow: 0 10px 22px rgba(0, 40, 80, 0.16) !important;
border-bottom-color: #0b6fbf !important;
color: #0b6fbf !important;
text-decoration: none !important;
}
.tsvh-card:focus-visible {
outline: 3px solid #0b6fbf !important;
outline-offset: 2px !important;
}
.tsvh-card:active {
transform: translateY(-1px) !important;
}
/* Icon-Bereich mit fester Proportion -> alle Icons wirken gleich groß */
.tsvh-icon {
display: flex !important;
align-items: center !important;
justify-content: center !important;
width: 100% !important;
height: 110px !important;
margin: 0 0 14px !important;
}
.tsvh-icon img {
display: block !important;
width: auto !important;
height: auto !important;
max-width: 100% !important;
max-height: 100% !important;
margin: 0 auto !important;
transition: transform .25s ease !important;
}
.tsvh-card:hover .tsvh-icon img,
.tsvh-card:focus-visible .tsvh-icon img {
transform: scale(1.07) !important;
}
.tsvh-label {
display: block !important;
margin: 0 !important;
font-size: 20px !important;
font-weight: 600 !important;
line-height: 1.25 !important;
color: inherit !important;
/* Lange Wörter ("Fußball Senioren") sauber umbrechen */
overflow-wrap: break-word !important;
word-wrap: break-word !important;
hyphens: auto !important;
-webkit-hyphens: auto !important;
}
/* ---------- Desktop klein / Tablet quer: < 1100px ---------- */
media (max-width: 1099px) {
.tsvh-item {
/* 4 Spalten */
flex: 0 0 calc((100% - 48px) / 4) !important;
max-width: calc((100% - 48px) / 4) !important;
}
.tsvh-label { font-size: 19px !important; }
}
/* ---------- Tablet hoch / Handy quer: < 768px ---------- */
media (max-width: 767px) {
.tsvh-wrap { padding: 20px 14px !important; }
.tsvh-grid { gap: 14px !important; }
.tsvh-item {
/* 3 Spalten */
flex: 0 0 calc((100% - 28px) / 3) !important;
max-width: calc((100% - 28px) / 3) !important;
}
.tsvh-card { min-height: 170px !important; padding: 18px 10px 16px !important; }
.tsvh-icon { height: 90px !important; margin-bottom: 12px !important; }
.tsvh-label { font-size: 18px !important; }
}
/* ---------- Handy hoch: < 560px -> IMMER 2 Spalten ---------- */
media (max-width: 559px) {
.tsvh-wrap { padding: 14px 10px !important; }
.tsvh-grid { gap: 10px !important; }
.tsvh-item {
flex: 0 0 calc((100% - 10px) / 2) !important;
max-width: calc((100% - 10px) / 2) !important;
}
.tsvh-card { min-height: 150px !important; padding: 14px 8px 14px !important; }
.tsvh-icon { height: 74px !important; margin-bottom: 10px !important; }
.tsvh-label { font-size: 16px !important; }
}
/* ---------- Sehr schmale Handys: < 360px ---------- */
media (max-width: 359px) {
.tsvh-card { min-height: 135px !important; padding: 12px 6px !important; }
.tsvh-icon { height: 62px !important; }
.tsvh-label { font-size: 14px !important; }
}
/* ---------- Handy quer (niedrige Höhe): Kacheln kompakter ---------- */
media (max-height: 480px) and (orientation: landscape) {
.tsvh-card { min-height: 130px !important; }
.tsvh-icon { height: 64px !important; margin-bottom: 8px !important; }
}
/* ---------- Weniger Bewegung gewünscht ---------- */
media (prefers-reduced-motion: reduce) {
.tsvh-card,
.tsvh-icon img { transition: none !important; }
.tsvh-card:hover,
.tsvh-card:focus-visible,
.tsvh-card:hover .tsvh-icon img { transform: none !important; }
}
</style>
<nav class="tsvh-wrap" aria-label="Sportarten und Angebote">
<ul class="tsvh-grid">
<li class="tsvh-item">
<a class="tsvh-card" href="oid://page/de$Badminton">
<span class="tsvh-icon"><img src="oid://image/icon-badminton.png" alt="" loading="lazy"></span>
<span class="tsvh-label">Badminton</span>
</a>
</li>
<li class="tsvh-item">
<a class="tsvh-card" href="oid://page/de$Basketball">
<span class="tsvh-icon"><img src="oid://image/icon-basketball.png" alt="" loading="lazy"></span>
<span class="tsvh-label">Basketball</span>
</a>
</li>
<li class="tsvh-item">
<a class="tsvh-card" href="oid://page/de$Ballschule">
<span class="tsvh-icon"><img src="oid://image/icon-ballschule.png" alt="" loading="lazy"></span>
<span class="tsvh-label">Ballschule</span>
</a>
</li>
<li class="tsvh-item">
<a class="tsvh-card" href="oid://page/de$Fussball-Jugend">
<span class="tsvh-icon"><img src="oid://image/icon-fussball-jugend.png" alt="" loading="lazy"></span>
<span class="tsvh-label">Fußball Jugend</span>
</a>
</li>
<li class="tsvh-item">
<a class="tsvh-card" href="oid://page/de$Fussball-Senioren">
<span class="tsvh-icon"><img src="oid://image/icon-fussball-senioren.png" alt="" loading="lazy"></span>
<span class="tsvh-label">Fußball Senioren</span>
</a>
</li>
<li class="tsvh-item">
<a class="tsvh-card" href="oid://page/de$Gymnastik">
<span class="tsvh-icon"><img src="oid://image/icon-gymnastik.png" alt="" loading="lazy"></span>
<span class="tsvh-label">Gymnastik</span>
</a>
</li>
<li class="tsvh-item">
<a class="tsvh-card" href="oid://page/de$Radsport">
<span class="tsvh-icon"><img src="oid://image/icon-radsport.png" alt="" loading="lazy"></span>
<span class="tsvh-label">Radsport</span>
</a>
</li>
<li class="tsvh-item">
<a class="tsvh-card" href="oid://page/de$Tennis">
<span class="tsvh-icon"><img src="oid://image/icon-tennis.png" alt="" loading="lazy"></span>
<span class="tsvh-label">Tennis</span>
</a>
</li>
<li class="tsvh-item">
<a class="tsvh-card" href="oid://page/de$Tischtennis">
<span class="tsvh-icon"><img src="oid://image/icon-tischtennis.png" alt="" loading="lazy"></span>
<span class="tsvh-label">Tischtennis</span>
</a>
</li>
<li class="tsvh-item">
<a class="tsvh-card" href="oid://page/de$Turnen">
<span class="tsvh-icon"><img src="oid://image/icon-turnen.png" alt="" loading="lazy"></span>
<span class="tsvh-label">Turnen</span>
</a>
</li>
<li class="tsvh-item">
<a class="tsvh-card" href="oid://page/de$Kurse">
<span class="tsvh-icon"><img src="oid://image/icon-kurse.png" alt="" loading="lazy"></span>
<span class="tsvh-label">Kurse</span>
</a>
</li>
</ul>
</nav>