/* Rahmen SC Buschhausen: nur Zustände und Übergänge, die V4-Klassen nicht abbilden (Aussehen steht in den globalen Klassen kz-* und fz-*). */

.sprung { position: fixed; left: 16px; top: -60px; z-index: 10001; padding: 12px 18px; background: #FFF730; color: #101010; font-weight: 700; text-decoration: none; transition: top .2s; }
.sprung:focus { top: 16px; }

/* Kopfzeile: Zustände beim Scrollen */
.kz-kopf.ist-fest { background-color: rgba(12, 12, 12, .94) !important; padding-top: 12px !important; padding-bottom: 12px !important; box-shadow: 0 1px 0 rgba(255, 255, 255, .14); }
.kz-kopf.ist-weg { transform: translateY(-110%); }
.menue-offen .kz-kopf { background-color: transparent !important; box-shadow: none; transform: none; }
.admin-bar .kz-kopf { top: 32px !important; }
@media (max-width: 782px) { .admin-bar .kz-kopf { top: 46px !important; } }

/* Menüknopf wird zum Kreuz */
.kz-strich { transform-origin: center; }
.menue-offen .kz-striche .kz-strich:first-child { transform: translateY(3.5px) rotate(45deg); }
.menue-offen .kz-striche .kz-strich:last-child { transform: translateY(-3.5px) rotate(-45deg); }
#menue-knopf:focus-visible { outline: 2px solid #FFF730; outline-offset: 3px; }

/* Vollbildmenü öffnet als Kreis aus dem Menüknopf */
.kz-vollmenue { transition: clip-path .8s cubic-bezier(.16, 1, .3, 1), visibility 0s .8s; }
.menue-offen .kz-vollmenue { clip-path: circle(150% at calc(100% - 60px) 40px) !important; visibility: visible !important; transition: clip-path .9s cubic-bezier(.16, 1, .3, 1), visibility 0s; }
.kz-gruppe, .kz-seite { opacity: 0; transform: translateY(30px); transition: opacity .6s cubic-bezier(.16, 1, .3, 1), transform .8s cubic-bezier(.16, 1, .3, 1); }
.menue-offen .kz-gruppe, .menue-offen .kz-seite { opacity: 1; transform: none; }
.menue-offen .kz-gruppe:nth-child(1) { transition-delay: .2s; } .menue-offen .kz-gruppe:nth-child(2) { transition-delay: .24s; }
.menue-offen .kz-gruppe:nth-child(3) { transition-delay: .28s; } .menue-offen .kz-gruppe:nth-child(4) { transition-delay: .32s; }
.menue-offen .kz-gruppe:nth-child(5) { transition-delay: .36s; } .menue-offen .kz-gruppe:nth-child(6) { transition-delay: .4s; }
.menue-offen .kz-gruppe:nth-child(n+7) { transition-delay: .44s; } .menue-offen .kz-seite { transition-delay: .4s; }

@media (prefers-reduced-motion: reduce) {
	.kz-vollmenue, .kz-gruppe, .kz-seite, .kz-kopf { transition: none !important; }
}

/* Sehr schmale Displays: Wappen genügt, damit Probetraining und Menü Platz haben */
@media (max-width: 420px) { .kz-marke .kz-name { display: none; } }

/* Mobiles Menü (bis 900 px): Hauptpunkte mit aufklappbaren Unterpunkten, ohne Mannschaftsliste */
.kz-auf { display: none; }
@media (max-width: 900px) {
	.kz-akkordeon .kz-vollmenue .kz-menueliste { gap: 0 !important; }
	.kz-akkordeon .kz-vollmenue .kz-gruppe { display: grid !important; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 0 !important; padding: 0 !important; margin: 0 !important; border-bottom: 1px solid rgba(255, 255, 255, .12); }
	.kz-akkordeon .kz-vollmenue .kz-gross { padding: 13px 0 !important; margin: 0 !important; font-size: clamp(26px, 7.6vw, 38px) !important; line-height: 1 !important; }
	.kz-akkordeon .kz-vollmenue .kz-unterliste { grid-column: 1 / -1; display: none !important; padding: 0 0 16px !important; margin: 0 !important; }
	.kz-akkordeon .kz-vollmenue .ist-auf .kz-unterliste { display: grid !important; gap: 2px !important; animation: kz-unter-rein .35s cubic-bezier(.16, 1, .3, 1); }
	.kz-akkordeon .kz-vollmenue .kz-unterliste .kz-klein { padding: 8px 0 8px 2px !important; margin: 0 !important; font-size: 17px !important; }
	.kz-akkordeon .kz-auf { position: relative; display: block; width: 48px; height: 48px; padding: 0; margin: 0; background: transparent; border: 1px solid rgba(255, 255, 255, .25); border-radius: 0; color: #FFF730; cursor: pointer; }
	.kz-akkordeon .kz-auf span::before, .kz-akkordeon .kz-auf span::after { content: ""; position: absolute; left: 50%; top: 50%; width: 16px; height: 2px; margin: -1px 0 0 -8px; background: currentColor; transition: transform .3s cubic-bezier(.16, 1, .3, 1); }
	.kz-akkordeon .kz-auf span::after { transform: rotate(90deg); }
	.kz-akkordeon .ist-auf .kz-auf span::after { transform: rotate(0deg); }
	.kz-akkordeon .ist-auf .kz-auf { background: #FFF730; color: #101010; border-color: #FFF730; }
	.kz-akkordeon .kz-auf:focus-visible { outline: 2px solid #FFF730; outline-offset: 2px; }
	/* Mannschaftsliste fällt weg (steht unter Mannschaften), Kontakt bleibt kurz */
	.kz-akkordeon .kz-vollmenue .kz-teams, .kz-akkordeon .kz-vollmenue .kz-seite > .kz-titel:first-child { display: none !important; }
	.kz-akkordeon .kz-vollmenue .kz-seite { margin-top: 28px !important; }
}
@keyframes kz-unter-rein { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
