/* Additions use the existing typography, colors and spacing tokens. */
.tva-section-nav { display:flex; flex-wrap:wrap; gap:.65rem; padding-bottom:2.5rem; }
.tva-section-nav a { display:inline-flex; align-items:center; min-height:44px; padding:.65rem 1rem; border:1px solid #ffffff40; border-radius:2rem; color:var(--color-white); font-size:.9rem; text-decoration:none; }
.tva-section-nav a:hover { background:var(--color-primary); border-color:var(--color-primary); }
.tva-training, .tva-anchor, #abteilungsinhalt { scroll-margin-top:7rem; }
.tva-training-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin-top:1.5rem; }
.tva-training-card { padding:clamp(1.25rem,3vw,2rem); border:1px solid #ffffff25; border-radius:1rem; background:#ffffff06; }
.layout-col .tva-training-card h3 { font-size:clamp(1.15rem,2vw,1.5rem); margin:0 0 1.25rem; }
.layout-col .tva-training-card p { margin:.3rem 0; }
.layout-col .tva-training-card .tva-day { color:var(--color-white); }
.layout-col .tva-training-card .tva-time { color:var(--color-white); font-size:clamp(1.1rem,2vw,1.5rem); font-weight:700; }
.layout-col .tva-training-card .tva-coach { margin-top:1rem; font-size:.9em; }
.layout-col .tva-location { margin-top:.75rem; }
.layout-col > ul { padding-left:1.3em; }
.layout-col li + li { margin-top:.6rem; }
.layout-col .block-contact .bio p { color:inherit; }
.tva-department-link { display:block; color:inherit; text-decoration:none; }
.tva-card-action { display:inline-block; margin-top:.8rem; color:var(--color-white); font-size:.85em; text-decoration:underline; text-underline-offset:.3em; }
.tva-department-link:hover .tva-card-action { color:var(--color-primary); }
.tva-join { border-radius:1.5rem; background:var(--color-primary); color:var(--color-white); padding:clamp(1.5rem,5vw,4rem); }
.tva-join h2 { font-size:clamp(1.8rem,4vw,3.5rem); line-height:1.1; max-width:19ch; margin:.75rem 0 1.5rem; }
.tva-join p { max-width:60ch; color:inherit; }
.tva-eyebrow { font-size:.8rem; text-transform:uppercase; letter-spacing:.08em; }
.tva-actions { display:flex; flex-wrap:wrap; gap:.75rem; margin-top:2rem; }
.tva-button { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:.8rem 1.3rem; border:1px solid #fff; border-radius:2rem; color:#191919; background:#fff; text-decoration:none; }
.tva-button-outline { color:#fff; background:transparent; }
.tva-button:hover { background:#191919; border-color:#191919; color:#fff; }
a:focus-visible, [role="button"]:focus-visible { outline:3px solid #fff; outline-offset:5px; }
@media (max-width:650px) {
    .tva-training-grid { grid-template-columns:1fr; }
    .tva-section-nav { padding-bottom:1.75rem; }
    .tva-section-nav a { font-size:.8rem; }
    .tva-actions { flex-direction:column; align-items:stretch; }
}
@media (prefers-reduced-motion:reduce) {
    *, *::before, *::after { scroll-behavior:auto !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}

.tva-faq details { border-bottom:1px solid #ffffff30; padding:1.25rem 0; }
.tva-faq summary { color:#fff; cursor:pointer; font-size:1.1rem; padding:.5rem 0; }
.tva-faq details > div { padding-top:1rem; }
.tva-faq summary:focus-visible { outline:3px solid #fff; outline-offset:5px; }

/* Department subpages */
.tva-subpages { padding-block: clamp(3rem, 6vw, 6rem); }
.tva-subpages-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr)); gap:clamp(1rem,2vw,1.5rem); margin-top:2rem; }
.tva-subpage { display:block; min-width:0; overflow:hidden; border:1px solid rgba(255,255,255,.18); border-radius:1.1rem; color:inherit; text-decoration:none; background:rgba(255,255,255,.045); }
.tva-subpage img { display:block; width:100%; height:clamp(12rem,20vw,17rem); object-fit:cover; }
.tva-subpage-body { padding:clamp(1.2rem,2.5vw,2rem); }
.tva-subpage h3 { font-size:clamp(1.5rem,3vw,2.2rem); margin:0 0 .7rem; }
.tva-subpage p { opacity:.72; margin:0 0 1rem; }
.tva-subpage span { color:var(--color-primary); font-weight:700; }
.tva-subpage:hover { border-color:var(--color-primary); }

.tva-error { min-height:75vh; display:flex; align-items:center; padding-block:clamp(10rem,18vw,16rem) clamp(5rem,10vw,9rem); }
.tva-error .container { width:100%; }
.tva-error .big { margin:1rem 0 1.5rem; }
.tva-error-intro { max-width:38rem; font-size:clamp(1.2rem,2.4vw,1.7rem); line-height:1.5; opacity:.75; }
.tva-error-actions { display:flex; flex-wrap:wrap; gap:1rem; margin-top:2rem; }

/* Accessible semantics without visual changes to the existing navigation. */
.navigation .btn-wrap[data-navigation-toggle],
.navigation-flyout .has-children > .link-wrap { appearance:none; -webkit-appearance:none; font:inherit; color:inherit; cursor:pointer; border:0; background:transparent; text-align:inherit; padding:0; }
.tva-skip-link { position:fixed; z-index:999999; top:8px; left:8px; padding:12px 16px; background:#fff; color:#111; transform:translateY(-200%); }
.tva-skip-link:focus { transform:none; }
:where(a, button, input, select, textarea):focus-visible { outline: 3px solid currentColor; outline-offset: 3px; }
.tva-youtube-consent { display:flex; align-items:center; justify-content:center; background:#181818; color:#fff; min-height:220px; text-align:center; }
.tva-youtube-consent-inner { max-width:34rem; padding:24px; }
.tva-youtube-load { background:#fff; color:#111; padding:12px 20px; margin-top:12px; cursor:pointer; border:0; font:inherit; }

/* Valid list semantics without affecting existing footer layout */
.tva-legal-links {display:contents;list-style:none;margin:0;padding:0;}
