:root{--blau:#0b5cad;--blau-dunkel:#07345f;--hell:#eef4fb;--text:#26313d;--rand:#c9d6e5}
*{box-sizing:border-box}
html{font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--text);line-height:1.6}
body{margin:0;background:#fff}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:#fff;padding:6px;z-index:9}
.kopf{max-width:1100px;margin:0 auto;padding:12px 16px 0}
.kopf img{width:100%;height:auto;display:block}
.menue{background:var(--blau-dunkel);display:flex;flex-wrap:wrap;justify-content:center;gap:2px;padding:4px 8px;margin-top:8px}
.menue a{color:#fff;text-decoration:none;padding:8px 12px;border-radius:4px;font-size:.95rem}
.menue a:hover,.menue a[aria-current]{background:var(--blau)}
main{max-width:960px;margin:0 auto;padding:16px 16px 40px}
h1{color:var(--blau-dunkel);margin:.6em 0 .5em;font-size:1.9rem}
h2,h3{color:var(--blau-dunkel)}
a{color:var(--blau)}
img{max-width:100%;height:auto}
figure{margin:0}figcaption{font-size:.85rem;color:#566;margin-top:6px}
.spalten{display:grid;grid-template-columns:minmax(0,300px) 1fr;gap:28px;align-items:start}
.spalten:has(> div:first-child){grid-template-columns:1fr minmax(0,270px)}
.spalten:has(> figure:first-child){grid-template-columns:minmax(0,300px) 1fr}
@media(max-width:720px){.spalten,.spalten:has(> div:first-child),.spalten:has(> figure:first-child){grid-template-columns:1fr}}
.hinweis{background:var(--hell);border-left:4px solid var(--blau);padding:12px 16px;font-weight:600}
.klein{font-size:.85rem;color:#566}
.liste{padding-left:1.1rem}.liste li{margin:.8em 0}
table.termine{width:100%;border-collapse:collapse;margin:0 0 22px}
.termine th,.termine td{border:1px solid var(--rand);padding:8px 10px;text-align:left;vertical-align:top}
.termine th{font-weight:500;white-space:nowrap}
.termine .datum{white-space:nowrap}
.termine tr.konzert{background:var(--hell);font-weight:600}
@media(max-width:640px){.termine th,.termine td{display:block;border:0;padding:2px 10px}
 .termine tr{display:block;border:1px solid var(--rand);margin-bottom:8px;padding:6px 0}}
.abc dt{font-weight:700;margin-top:1em;color:var(--blau-dunkel)}
.abc dd{margin:0 0 0 2.2rem}
.buchstabe{display:inline-block;min-width:1.5rem;color:#c0392b;font-size:1.2rem}
.karten{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}
.karte{display:block;border:1px solid var(--rand);border-radius:6px;overflow:hidden;text-decoration:none;color:var(--text)}
.karte img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.karte span{display:block;padding:10px 12px;font-weight:600}
.karte small{display:block;font-weight:400;color:#566}
.albumtext img{max-width:100%}.albumtext p{margin:.6em 0}
.karte .ohnebild{display:flex;align-items:center;justify-content:center;aspect-ratio:4/3;background:var(--hell);font-size:3rem;color:var(--blau)}
.naechste{background:var(--hell);border-left:4px solid var(--blau);padding:4px 16px 8px;margin:0 0 22px}.naechste h2{margin:.4em 0 0;font-size:1.15rem}.naechste .liste{margin:.4em 0}.naechste .liste li{margin:.5em 0}
.plakat{max-width:340px;width:100%;height:auto;margin-top:8px;border:1px solid var(--rand);border-radius:4px}
.raster{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px}
.raster img{width:100%;aspect-ratio:1;object-fit:cover;display:block;border-radius:3px}
.lb{position:fixed;inset:0;background:rgba(0,0,0,.9);display:flex;align-items:center;justify-content:center;z-index:50}
.lb img{max-width:94vw;max-height:90vh}
.lb button{position:absolute;background:none;border:0;color:#fff;font-size:2.4rem;cursor:pointer;padding:12px}
.lb .zu{top:0;right:8px}.lb .vor{right:8px;top:50%}.lb .zur{left:8px;top:50%}
.fuss{border-top:1px solid var(--rand);text-align:center;padding:16px;font-size:.9rem;color:#566}
@media(prefers-color-scheme:dark){
 :root{--hell:#16283c;--text:#dde5ee;--rand:#34506e;--blau:#6db2f5;--blau-dunkel:#0e2a47}
 body{background:#0f1a26}h1,h2,h3,.abc dt{color:#9fd0ff}.menue a{color:#e8f1fb}
 .klein,figcaption,.fuss,.karte small{color:#9db0c4}}
