/* Statische Vereins- und Regionsseiten (erzeugt von crawler/seo.ts) */

.seo-list { list-style: none; margin: 0 0 1.5rem; padding: 0; display: grid; gap: 0.5rem 1.5rem; grid-template-columns: repeat(auto-fill, minmax(min(16rem, 100%), 1fr)); }
.seo-note { color: var(--dss-mute); font-size: 0.875rem; }
.seo-list-page h1 { margin-top: 0; }
#regions { margin: 2rem 0; }
.seo-list-page h1, #verein-content > h1 { font-size: clamp(1.5rem, 7vw, 2.25rem); overflow-wrap: anywhere; hyphens: auto; }

.seo-alphabet ul { list-style: none; margin: 0 0 1.5rem; padding: 0; }
.seo-alphabet .dss-tab { min-width: 44px; text-decoration: none; color: var(--dss-link); }
.seo-list-page h2[id] { scroll-margin-top: 1rem; }

/* Ligaseiten */
.seo-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(88px, 1fr)); gap: 0.75rem; margin: 0 0 1.5rem; }
.seo-list-page h2, .seo-list-page h3 { margin-top: 2rem; }
.seo-list-page .dss-rows, .seo-list-page .dss-frame, .seo-list-page .dss-card { margin-bottom: 1.5rem; }
.seo-list a { display: inline-flex; align-items: center; min-height: 44px; color: var(--dss-link); }
.seo-block-link { display: inline-flex; align-items: center; min-height: 44px; }
.seo-list-page address { font-style: normal; margin: 0 0 0.75rem; }
.hall-map { height: 260px; border-radius: var(--radius-lg); margin: 0 0 0.75rem; border: 1px solid var(--dss-line); }
.dss-frame:focus-visible { outline: var(--ring-w) solid var(--ring-color); outline-offset: 2px; }
.dss-card .seo-list { margin: 0; }
.seo-list-page > p { margin: 0 0 1rem; }
.dss-crumbs { margin: 0 0 1rem; }

/* Aufklappbare Ligenhierarchie: Altersklasse → Geschlecht → Ebene (details, ohne JavaScript bedienbar); darunter Bezirk als einfache Überschrift */
.liga-fold { margin: 0 0 0.5rem; }
.liga-fold .liga-fold { margin-left: 0.25rem; padding-left: 0.75rem; border-left: 2px solid var(--dss-line); }
.liga-fold > summary { display: flex; align-items: center; gap: 0.5rem; min-height: 44px; cursor: pointer; list-style: none; border-radius: var(--radius-sm); }
.liga-fold > summary::-webkit-details-marker { display: none; }
.liga-fold > summary::before { content: ""; flex: none; width: 0.55rem; height: 0.55rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(-45deg); transition: transform 0.15s; }
.liga-fold[open] > summary::before { transform: rotate(45deg); }
.liga-fold > summary:focus-visible { outline: var(--ring-w) solid var(--ring-color); outline-offset: 2px; }
.liga-fold > summary > :is(h2, h3, h4) { margin: 0; }
.liga-fold--3 > summary > h3 { font-size: 1.15rem; }
.liga-fold--4 > summary > h4 { font-size: 1rem; }
.liga-fold > h5 { margin: 1rem 0 0.5rem; font-size: 0.95rem; }
@media (prefers-reduced-motion: reduce) { .liga-fold > summary::before { transition: none; } }

/* Ligakarten (Land- und Verbandsseiten): Name, Bezirk/Teams, Tabellenspitze als Mini-Tabelle */
.liga-cards { list-style: none; margin: 0 0 1.5rem; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 0.75rem; }
.liga-card { padding: 0.65rem 0.9rem 0.85rem; gap: 0.4rem; }
.liga-card-title { margin: 0; font-size: 1rem; line-height: 1.25; }
.liga-card-title a { display: inline-flex; align-items: center; min-height: 44px; color: var(--dss-fg); text-decoration: none; overflow-wrap: break-word; }
.liga-card-title a:hover { text-decoration: underline; }
.liga-card-title a:focus-visible { outline: var(--ring-w) solid var(--ring-color); outline-offset: 2px; border-radius: var(--radius-sm); }
.liga-card-meta { margin: 0; }
.liga-empty { margin: 0.25rem 0 0.5rem; }
.liga-card-more { margin: auto 0 0; font-size: 0.875rem; }
.liga-card-more a { display: inline-flex; align-items: center; min-height: 44px; }
.liga-mini { font-size: 13px; }
.liga-mini td, .liga-mini th { padding: 0 8px; }
.liga-mini th.wrap, .liga-mini td.wrap { min-width: 0; white-space: normal; }
.seo-list-page h2 .seo-note { font-size: 0.875rem; font-weight: 500; margin-left: 0.35rem; }
