:root{--navy:#0f152a;--orange:#f48b16;--white:#fff;--muted:#bbc0d0;--line:#ffffff26;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--navy);color:var(--white);font-family:Arial,Helvetica,sans-serif;line-height:1.65}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}img{max-width:100%;display:block}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--orange);outline-offset:6px}a:hover{text-decoration:underline;text-underline-offset:5px}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.05;letter-spacing:-.055em}h1{font-size:clamp(3.6rem,7.5vw,7.8rem);font-weight:900}h2{font-size:clamp(2.5rem,5vw,5rem);font-weight:850}h1 span,h2 span{color:var(--orange)}p+p{margin-top:1rem}.wrap{width:min(1240px,calc(100% - 100px));margin-inline:auto}.eyebrow{font-size:.73rem;font-weight:800;letter-spacing:.19em;margin-bottom:24px;color:var(--orange)}.skip-link{position:fixed;top:-100px;left:20px;background:var(--orange);color:var(--navy);padding:12px;z-index:20}.skip-link:focus{top:10px}.site-header{position:relative;isolation:isolate;overflow:hidden;background:var(--navy)}.navigation{display:flex;align-items:center;justify-content:space-between;min-height:106px;position:relative;z-index:3;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:15px;font-size:.72rem;font-weight:800;line-height:1.35;letter-spacing:.08em}.brand img{height:65px;width:auto}.nav-links{display:flex;gap:38px;font-size:.85rem;font-weight:700;align-items:center}.nav-links a:last-child{border:1px solid var(--line);padding:10px 19px;border-radius:3px}.nav-links a span{color:var(--orange);margin-left:12px}.menu-toggle{display:none}.header-art{position:absolute;inset:0;z-index:-1}.header-music{width:100%;height:100%;object-fit:cover;object-position:center}.header-city{position:absolute;right:0;bottom:0;width:50%;height:65%;object-fit:cover;opacity:.5;mask-image:linear-gradient(135deg,transparent 12%,#000 85%)}.header-art:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0f152af5 0%,#0f152aa0 50%,#0f152a25),linear-gradient(0deg,#0f152a 0%,transparent 35%)}.header-content{display:flex;align-items:center;justify-content:space-between;gap:50px;padding-block:75px 82px;min-height:540px}.header-lead{font-size:1.12rem;color:#e0e2eb;margin:25px 0 30px}.header-logo{width:clamp(140px,19vw,255px);transform:rotate(7deg);filter:drop-shadow(0 20px 30px #0008);margin-right:30px}.button{display:inline-flex;gap:35px;align-items:center;background:var(--orange);color:var(--navy);padding:14px 22px;font-weight:800;border-radius:3px;font-size:.9rem}.button:hover{background:#ffa434;text-decoration:none}.header-bottom{display:flex;justify-content:space-between;gap:20px;font-size:.7rem;letter-spacing:.08em;padding-bottom:26px;color:var(--muted)}.slideshow{height:100svh;min-height:520px;position:relative;overflow:hidden;background:var(--navy)}.hero-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.1s;pointer-events:none}.hero-slide.is-active{opacity:1}.photo-shade{position:absolute;inset:0;background:linear-gradient(0deg,#0f152ae6,transparent 65%);pointer-events:none}.photo-title{position:absolute;bottom:145px;left:max(50px,calc((100vw - 1240px)/2));right:30px}.photo-title h2{font-size:clamp(3rem,6.5vw,6.5rem)}.slideshow-controls{position:absolute;bottom:38px;left:max(50px,calc((100vw - 1240px)/2));right:max(50px,calc((100vw - 1240px)/2));display:flex;align-items:center;gap:32px;border-top:1px solid #ffffff55;padding-top:22px}.slide-count{font-size:.8rem;font-weight:700;letter-spacing:.12em}.slide-dots{display:flex;gap:4px}.slide-dot{border:0;background:transparent;width:30px;height:36px;padding:12px 4px}.slide-dot:after{content:"";display:block;height:3px;background:#ffffff65}.slide-dot[aria-pressed=true]:after{background:var(--orange)}.slide-actions{display:flex;gap:10px;margin-left:auto}.slide-actions button{width:44px;height:44px;border:1px solid #ffffff65;background:#0f152a55;color:white;border-radius:50%;font-size:1.05rem}.slide-actions button:hover{background:var(--orange);color:var(--navy)}.section-dark{background:var(--navy)}.welcome{padding:110px 0}.intro-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:90px}.intro-grid>div{color:var(--muted)}.lead{font-size:1.25rem;color:white;line-height:1.5;margin-bottom:20px}.text-link{display:inline-block;color:var(--orange);font-size:.9rem;font-weight:700;margin-top:28px}.text-link span{margin-left:20px}.values{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:80px}.values>div{border-top:1px solid var(--line);padding-top:22px}.values span{font-size:.72rem;color:var(--orange);letter-spacing:.1em}.values h3{font-size:clamp(1.6rem,2.7vw,2.4rem);margin:24px 0 14px}.values p{font-size:.9rem;color:var(--muted)}.concerts{position:relative;isolation:isolate;background:var(--orange);color:var(--navy);padding:95px 0 50px;overflow:hidden}.concerts:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(#f48b16df,#f48b16ed),url('bilder/hintergrund/konzerte.webp') center 60%/cover;opacity:1}.concerts .eyebrow,.imprint .eyebrow{color:var(--navy)}.concert-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;padding-bottom:45px}.concert-heading h2{font-size:clamp(3rem,6vw,6rem);text-transform:uppercase;font-weight:900}.concert-heading h2 span{color:var(--navy)}.concert-heading>p{font-weight:700;font-size:1.2rem;padding-bottom:10px}.event-empty{padding:40px 32px;background:#0f152af2;color:white;border-left:5px solid white;font-size:1.15rem;max-width:800px;box-shadow:8px 8px 0 #0f152a25}.event-row{display:grid;grid-template-columns:140px 1fr;gap:30px;padding:25px 0;border-top:2px solid #0f152a55}.event-row time{font-size:1.75rem;font-weight:900;text-transform:uppercase}.event-genre{font-size:.7rem;letter-spacing:.14em;font-weight:800}.event-row h3{font-size:2rem;margin:10px 0}.concert-note{display:flex;justify-content:space-between;gap:25px;margin-top:70px;border-top:1px solid #0f152a55;padding-top:22px;font-size:.85rem;font-weight:700}.contact{padding:105px 0}.contact-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:70px;align-items:center}.contact h2{font-size:clamp(2.5rem,4.6vw,4.5rem)}.contact p{margin-top:25px;color:var(--muted)}.contact-details{padding:30px 0;border-block:1px solid var(--line)}.contact-mail{display:flex;justify-content:space-between;gap:15px;color:var(--orange);font-size:clamp(1rem,1.9vw,1.65rem);font-weight:700;margin-bottom:20px;overflow-wrap:anywhere}.contact-details>p{font-size:.9rem}.contact-details p a{color:white}.legal{padding:75px 0}.legal h2{font-size:clamp(2.1rem,4vw,3.5rem);margin-bottom:35px;overflow-wrap:anywhere}.legal h3{font-size:1.1rem;letter-spacing:-.02em;line-height:1.4;margin-bottom:13px}.legal a{text-decoration:underline;text-underline-offset:3px}.imprint{background:var(--orange);color:var(--navy);color-scheme:light}.imprint-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:50px;font-size:.92rem}.privacy{background:white;color:var(--navy);color-scheme:light}.privacy-copy{max-width:900px;font-size:.94rem;overflow-wrap:anywhere}.privacy h3{margin-top:30px}.privacy .eyebrow{color:#815000}.privacy-copy>p:first-of-type{color:#646879}.footer{padding:28px 0;border-top:1px solid var(--line);font-size:.75rem;color:var(--muted)}.footer .wrap,.footer nav{display:flex;justify-content:space-between;gap:25px;align-items:center}
@media(min-width:1600px){.header-content{min-height:620px}}@media(max-width:900px){.wrap{width:calc(100% - 48px)}.header-content{gap:25px}.header-logo{width:160px;margin-right:0}.intro-grid{gap:35px}.values{gap:25px}.contact-grid{gap:35px}.photo-title{left:24px}.slideshow-controls{left:24px;right:24px}.imprint-grid{gap:25px}.concert-heading>p{font-size:1rem}}@media(max-width:640px){.navigation{min-height:88px}.brand img{height:53px}.brand{font-size:.62rem;gap:10px}.menu-toggle{display:flex;align-items:center;gap:15px;border:1px solid var(--line);padding:8px 12px;background:var(--navy);color:white;border-radius:3px;font-size:.8rem}.nav-links{display:none;position:absolute;top:88px;left:-24px;right:-24px;background:var(--navy);padding:20px 24px;box-shadow:0 15px 30px #0006;gap:0}.nav-links.is-open{display:flex;flex-direction:column;align-items:stretch}.nav-links a{padding:14px 0}.nav-links a:last-child{border:0;padding:14px 0}.header-content{padding-block:60px;min-height:490px;position:relative}.header-content>div{position:relative;z-index:1}.header-logo{position:absolute;right:-25px;bottom:30px;width:135px;opacity:.2}.header-lead{max-width:270px;font-size:1rem}.header-city{width:100%;height:50%;opacity:.4}.header-bottom{font-size:.65rem}.header-bottom>span{display:none}.slideshow{min-height:500px}.photo-title{bottom:150px}.photo-title .eyebrow{font-size:.65rem}.slideshow-controls{gap:12px;flex-wrap:wrap;bottom:25px}.slide-dots{gap:0}.slide-dot{width:23px}.slide-actions{gap:5px}.slide-actions button{width:36px;height:36px}.slide-count{font-size:.65rem}.welcome,.contact{padding:70px 0}.intro-grid,.contact-grid{grid-template-columns:1fr;gap:30px}.values{grid-template-columns:1fr;gap:30px;margin-top:45px}.values h3{margin:12px 0}.values>div{padding-top:15px}.concerts{padding:65px 0 35px}.concert-heading{display:block;padding-bottom:30px}.concert-heading>p{margin-top:25px}.event-empty{padding:25px 22px;font-size:1rem}.concert-note{margin-top:45px;flex-direction:column;gap:10px}.event-row{grid-template-columns:85px 1fr;gap:20px}.event-row time{font-size:1.1rem}.event-row h3{font-size:1.5rem}.legal{padding:55px 0}.imprint-grid{grid-template-columns:1fr;gap:30px}.footer .wrap{align-items:flex-start;flex-direction:column;gap:15px}.footer nav{gap:20px}.contact-mail{font-size:1.18rem}.eyebrow{margin-bottom:20px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-slide{transition:none}}

/* Vereinslogo anstelle der Überschrift im linken Headerbereich. */
.header-content .header-logo{position:static;width:clamp(220px,27vw,350px);height:auto;margin:0;transform:none;opacity:1}.logo-title{line-height:1}.header-content{justify-content:flex-start}
@media(max-width:640px){.header-content .header-logo{width:240px}}

.back-to-top{position:fixed;right:24px;bottom:24px;z-index:10;display:flex;align-items:center;justify-content:center;width:48px;height:48px;border:1px solid var(--navy);border-radius:50%;background:var(--orange);color:var(--navy);font-size:1.7rem;line-height:1;box-shadow:0 4px 18px #0003}.back-to-top:hover{background:#ffa434;text-decoration:none}.back-to-top:focus-visible{outline-color:var(--white);box-shadow:0 0 0 7px var(--navy)}
@media(max-width:640px){.back-to-top{right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px))}}

/* Dezentes Gemeinschaftsmotiv im Farbton des Vereinsbereichs. */
.community-photo{margin-top:30px;background:var(--navy);overflow:hidden;aspect-ratio:16/9;position:relative}.community-photo img{width:100%;height:100%;object-fit:cover;filter:grayscale(1);mix-blend-mode:luminosity;opacity:.24}.community-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,var(--navy),transparent 45%),linear-gradient(90deg,#0f152a40,transparent 30%,#0f152a40);pointer-events:none}

.event-row time .event-year{display:block;font-size:.85em;margin-top:.35em}

/* Ticketshop mit Bestätigung vor dem Verlassen der Vereinsseite. */
.ticket-shop{margin-top:28px}.ticket-shop p{font-size:1rem;font-weight:700;margin-bottom:12px}.ticket-shop-button{display:block;width:240px;max-width:100%;padding:16px;background:white;border:2px solid var(--navy);border-radius:4px}.ticket-shop-button img{width:100%;height:auto}.ticket-shop-button:hover{box-shadow:4px 4px 0 #0f152a40}.ticket-shop-button:focus-visible{outline-color:var(--navy)}.ticket-dialog{width:min(480px,calc(100% - 40px));max-height:calc(100% - 40px);padding:30px;border:1px solid var(--muted);border-radius:6px;background:var(--navy);color:var(--white)}.ticket-dialog::backdrop{background:#000a}.ticket-dialog h2{font-size:1.8rem;line-height:1.2;letter-spacing:-.03em;margin-bottom:18px}.ticket-dialog p{color:var(--muted)}.ticket-dialog-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:12px;margin-top:28px}.ticket-dialog-actions button{border:1px solid var(--orange);border-radius:3px;padding:12px 18px}.ticket-cancel{background:transparent;color:var(--white)}.ticket-cancel:hover{background:#ffffff15}

/* Kleinere Hintergrunddatei auf Handys. */
@media(max-width:640px){.concerts:before{background-image:linear-gradient(#f48b16df,#f48b16ed),url('bilder/hintergrund/konzerte_mobil.webp')}}
