$g): ?>
@@ -170,45 +241,7 @@ $soleNote = $single ? ($groups[0]['note'] ?? '') : '';
aria-labelledby="gtab-= $i ?>"
tabindex="0"
>
-
-
-
-
= e($g['intro']) ?>
-
-
-
-
= e($det['heading']) ?>
-
-
-
= e($det['text']) ?>
-
-
-
-
= e($g['recommendation']) ?>
-
-
-
-
-
= icon('clock', 'group-card__schedule-icon') ?>Trainingszeiten
-
-
-
Kontakt: = e($g['contact']) ?>
-
-
-
Übungsleitung: = e(implode(', ', $g['trainers'])) ?>
-
-
-
= e($g['note']) ?>
-
-
-
+
diff --git a/app/pages/turnen-wettkampfturnen.php b/app/pages/turnen-wettkampfturnen.php
index b86f459..f896568 100644
--- a/app/pages/turnen-wettkampfturnen.php
+++ b/app/pages/turnen-wettkampfturnen.php
@@ -6,10 +6,10 @@ declare(strict_types=1);
* Turnen → Wettkampfturnen. Inhalt: data/turnen.json (disciplines.wettkampfturnen).
* Struktur: Hero → Gruppen/Trainingszeiten.
*
- * Zwei Gruppen: das Wettkampftraining selbst und die Flamingos, die am 31.07.2026 vom
- * Kinderturnen hierher gezogen sind. Dadurch läuft die Seite nicht mehr im
- * Einzelgruppen-Layout (Trainingszeiten als Kachel im Dashboard), sondern zeigt die
- * Gruppen darunter als Tabs — deshalb group-tabs.js und die Sternchen-Fußnote.
+ * Zwei Gruppen: die Flamingos, die am 31.07.2026 vom Kinderturnen hierher gezogen sind,
+ * und das Leistungsturnen. Dadurch läuft die Seite nicht mehr im Einzelgruppen-Layout
+ * (Trainingszeiten als Kachel im Dashboard), sondern zeigt die Gruppen darunter als
+ * offene Kartenreihe (layout => 'stacked') — deshalb die Sternchen-Fußnote.
*/
$slug = 'turnen/wettkampfturnen';
$data = json_load('turnen');
@@ -19,10 +19,6 @@ $meta = [
'title' => 'Wettkampfturnen in Kulmbach',
'description' => 'Leistungsorientiertes Gerätturnen mit Training und Wettkämpfen: Wettkampfturnen beim TSV 08 Kulmbach im Mäximum Gym. Trainingszeiten und Kontakt im Überblick.',
'og_image' => 'img/pages/vereinsgelaende-1600.jpg',
- // Seit die Flamingos hier stehen, sind es zwei Gruppen, davon eine mit
- // Beschreibung — group-schedule rendert dann eine Tab-Leiste, und die braucht
- // dieses Skript. Ohne es wären die Tab-Knöpfe tote Schaltflächen.
- 'scripts' => ['group-tabs.js'],
'schema' => page_schema([
['name' => 'Startseite', 'slug' => ''],
['name' => 'Turnen', 'slug' => 'turnen'],
@@ -35,6 +31,15 @@ component('group-schedule', [
'location' => $d['location'] ?? [],
'lead' => $d['lead'] ?? '',
'groups' => $d['groups'] ?? [],
+ // Zwei Gruppen, beide offen untereinander statt hinter Tabs: bei so wenigen
+ // Gruppen verstecken Tabs mehr Inhalt als sie ordnen, und die offene Kartenreihe
+ // hält den Bento-Eindruck der Seite. Damit braucht die Seite auch kein
+ // group-tabs.js mehr. Das Kinderturnen bleibt bei Tabs, dort sind es drei
+ // textreiche Gruppen.
+ 'layout' => 'stacked',
+ // Überschrift „Unsere Gruppen" nur für Screenreader: die Karten erklären sich
+ // selbst, und ohne die Zeile bleibt der Bento-Fluss ruhiger.
+ 'groupsTitleHidden' => true,
// Drei Flamingos-Trainerinnen tragen ein Sternchen. Ohne die Fußnote stünden
// hier drei unerklärte Sterne auf der Seite.
'footnote' => $data['footnote'] ?? '',
diff --git a/data/turnen.json b/data/turnen.json
index 11ba0c6..831e486 100644
--- a/data/turnen.json
+++ b/data/turnen.json
@@ -101,7 +101,6 @@
"image": { "base": "img/pages/vereinsgelaende", "widths": [640, 1000, 1600], "alt": "Luftaufnahme unserer Hans-Rausch-Sportanlage im Katzbachtal" },
"ctas": []
},
- "layout": "blocks",
"location": { "venue": "Mäximum Gym", "street": "Thurnauer Str. 51", "zip": "95326", "city": "Kulmbach" },
"lead": "Annelie Frisque",
"notice_tone": "stop",
diff --git a/public/assets/css/components.css b/public/assets/css/components.css
index ef9a808..a8c7d1e 100644
--- a/public/assets/css/components.css
+++ b/public/assets/css/components.css
@@ -2869,6 +2869,14 @@
}
}
+/* Versteckte Überschrift: dann fehlt der Zeile, die den Raum zwischen Dashboard und
+ erster Karte gefüllt hat, ihr Inhalt. Übrig blieben 160px (80 unten von der
+ Dashboard-Sektion + 80 oben von dieser), in denen nur nackte Hintergrund-Textur stand
+ — gemessen und als Loch aufgefallen (31.07.2026). Die 80px des Dashboards reichen. */
+.group-list-section--tight {
+ padding-top: 0;
+}
+
/* Schlichte Gruppen (z. B. Kurse) als Raster, beschreibende Gruppen gestapelt. */
.group-list--grid {
display: grid;
@@ -2901,7 +2909,10 @@
grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
gap: var(--space-4xl);
align-items: start;
- padding: var(--space-3xl) var(--space-3xl);
+ /* --pad-card-lg statt fester 40px, dieselbe Korrektur wie beim Tab-Panel:
+ auf schmalen Handys stapeln sich Container- und Kartenabstand sonst so, dass
+ dem Inhalt kaum Breite bleibt. Obergrenze ist der bisherige Wert. */
+ padding: var(--pad-card-lg) var(--pad-card-lg);
}
@media (max-width: 768px) {