/* ============================================================
   Touching Voices – eigenes Stylesheet (templates/shaper_helixultimate/css/custom.css)
   Wird von Helix Ultimate automatisch geladen. Abschnitte v1 … v3.x, jeder einzeln entfernbar.
   Pflege: System → Templates → Site Templates → Shaper_helixultimate → css/custom.css
   ============================================================ */
/* ===== Touching Voices – Helix Durchstich v1 ===== */
:root{--tv-blue:#0077bb;--tv-blue-dark:#005b8f;--tv-bg:#f5f6fb;}
#sp-top-bar{display:none;}
#sp-header{box-shadow:0 2px 12px rgba(0,0,0,.12);}
#sp-header .logo{display:flex;align-items:center;}
#sp-header .sp-megamenu-parent>li>a{font-weight:500;letter-spacing:.02em;text-transform:none;font-size:15px;}
#sp-header .sp-megamenu-parent>li.active>a{box-shadow:inset 0 -3px 0 #fff;}
.featured-article-badge{display:none!important;}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:17px;line-height:1.65;}
h1,h2,h3,h4{color:var(--tv-blue);font-weight:600;letter-spacing:-.01em;}
h1{font-size:2.2rem;}
h2,.article-title{font-size:1.9rem;}
h3{font-size:1.35rem;}
#sp-main-body{padding:56px 0 72px;}
.view-category .article-list .article{background:#fff;border:0;border-radius:14px;padding:28px 32px;margin-bottom:28px;box-shadow:0 8px 28px rgba(0,60,110,.06);}
.view-category .article-list .article .article-header h2 a{color:var(--tv-blue);text-decoration:none;}
.view-category .article-list .article .article-header h2 a:hover{color:var(--tv-blue-dark);}
.article-intro-image img,.article-full-image img,.article-details img,.article-list img{border-radius:10px;}
.article-info{color:#6b7280;font-size:.85rem;}
#sp-footer{padding:28px 0;font-size:.9rem;}
#sp-footer .sp-copyright{text-align:center;}
.sp-scroll-up{background:var(--tv-blue);border-radius:50%;}
.sp-scroll-up:hover{background:var(--tv-blue-dark);}
.btn-primary{background:var(--tv-blue);border-color:var(--tv-blue);}
.btn-primary:hover{background:var(--tv-blue-dark);border-color:var(--tv-blue-dark);}
@media (max-width:991px){h2,.article-title{font-size:1.5rem;} .view-category .article-list .article{padding:20px;}}

/* --- v1.2 Bilder & Wrapper --- */
.article-list .article .article-header h2, .article-list .article h2.article-title{font-size:1.85rem!important;line-height:1.25;margin:0 0 .6rem;}
.article-details .article-header h1{font-size:2.1rem;}
.article-list .article .article-intro-image.float-right{float:right!important;margin:0 0 16px 32px!important;max-width:42%;}
.article-list .article .article-intro-image.float-left{float:left!important;margin:0 32px 16px 0!important;max-width:42%;}
.article-list .article .article-intro-image.float-none{margin:0 0 20px!important;}
.article-intro-image img,.article-full-image img{width:100%;height:auto;border-radius:10px;}
.article-details .article-full-image.float-right{float:right!important;margin:0 0 16px 32px!important;max-width:42%;}
.article-details .article-full-image.float-left{float:left!important;margin:0 32px 16px 0!important;max-width:42%;}
.article-list .article::after,.article-details::after{content:'';display:block;clear:both;}
.view-wrapper #blockrandom,.view-wrapper iframe{width:100%!important;min-height:70vh;border:0;border-radius:10px;}
@media (max-width:767px){.article-list .article .article-intro-image.float-right,.article-list .article .article-intro-image.float-left,.article-details .article-full-image.float-right,.article-details .article-full-image.float-left{float:none!important;max-width:100%;margin:0 0 16px!important;}}
/* --- v1.3 Menü-Hover --- */
#sp-header .sp-megamenu-parent>li>a{position:relative;padding-top:6px;padding-bottom:6px;border-radius:6px;transition:background .15s;}
#sp-header .sp-megamenu-parent>li:hover>a,#sp-header .sp-megamenu-parent>li.active>a{color:#fff!important;background:rgba(255,255,255,.14);box-shadow:none;}
#sp-header .sp-megamenu-parent>li.active>a{box-shadow:inset 0 -3px 0 #fff;border-radius:6px 6px 0 0;}
#sp-header .sp-megamenu-parent .sp-dropdown .sp-dropdown-inner{background:#fff;border-radius:0 0 10px 10px;box-shadow:0 10px 30px rgba(0,40,80,.18);}
#sp-header .sp-megamenu-parent .sp-dropdown li.sp-menu-item>a{color:#2b2f36;padding:10px 20px;}
#sp-header .sp-megamenu-parent .sp-dropdown li.sp-menu-item>a:hover,#sp-header .sp-megamenu-parent .sp-dropdown li.sp-menu-item.active>a{color:#0077bb;background:#eef4fb;}

/* --- v1.5 Kontaktseite (Personenkarte) & Formular --- */
.com-contact{max-width:860px;margin:0 auto;display:flex;flex-direction:column;}
.com-contact>.row{order:1;display:flex;flex-wrap:wrap;align-items:center;margin:0;background:#fff;border-radius:14px 14px 0 0;padding:28px 32px 4px;box-shadow:0 8px 28px rgba(0,60,110,.06);}
.com-contact>.row>h2{flex:0 0 100%;order:0;margin:0 0 20px;padding:0;}
.com-contact>.row>.col-lg-auto{order:1;flex:0 0 auto;padding:0;margin:0 28px 20px 0;}
.com-contact>.row>.col{order:2;flex:1 1 260px;padding:0;margin-bottom:20px;}
.com-contact>.row img{width:150px;height:150px;object-fit:cover;object-position:top;border-radius:50%;box-shadow:0 6px 18px rgba(0,60,110,.18);border:4px solid #fff;}
.com-contact .contact-position{display:block!important;margin:0!important;font-size:1.25rem;font-weight:600;color:#0077bb;}
.com-contact .contact-position .me-2{display:none;}
.com-contact .contact-info{margin:4px 0 0;}
.com-contact .contact-info .contact-address:empty{display:none;}
.com-contact .contact-info .mb-4{display:none;}
.com-contact>h2{order:3;margin:0 0 1rem;}
.com-contact>h2:nth-of-type(2){display:none;}
.com-contact>.contact-form{order:4;}
.com-contact>.contact-miscinfo{order:2;background:#fff;border-radius:0 0 14px 14px;padding:0 32px 26px;margin:0 0 36px;box-shadow:0 8px 28px rgba(0,60,110,.06);}
.com-contact>.contact-miscinfo .me-2{display:none;}
.com-contact .contact-misc{font-size:1.05rem;line-height:1.6;}
.com-contact .contact-misc p:last-child{margin-bottom:0;}
.com-contact .contact-form form.well{background:#fff;border:0;border-radius:14px;padding:32px 36px;box-shadow:0 8px 28px rgba(0,60,110,.06);}
.com-contact .contact-form legend{font-size:1.35rem;font-weight:600;color:#0077bb;border:0;margin-bottom:.25rem;}
.com-contact .contact-form .field-spacer .text{color:#6b7280;font-size:.9rem;}
.com-contact .contact-form .control-group{margin-bottom:18px;}
.com-contact .contact-form label{font-weight:500;color:#2b2f36;margin-bottom:6px;display:block;}
.com-contact .contact-form .form-control{border:1px solid #d6dbe3;border-radius:10px;padding:12px 14px;font-size:1rem;background:#fafbfd;transition:border-color .15s,box-shadow .15s;}
.com-contact .contact-form .form-control:focus{border-color:#0077bb;box-shadow:0 0 0 4px rgba(0,119,187,.15);background:#fff;}
.com-contact .contact-form textarea.form-control{min-height:180px;}
.com-contact .contact-form .form-check-input{width:1.2em;height:1.2em;border-radius:5px;border-color:#9aa5b5;}
.com-contact .contact-form .form-check-input:checked{background-color:#0077bb;border-color:#0077bb;}
.com-contact .contact-form .btn-primary{padding:12px 28px;border-radius:999px;font-weight:600;font-size:1rem;background:#0077bb;border-color:#0077bb;box-shadow:0 6px 16px rgba(0,119,187,.25);}
.com-contact .contact-form .btn-primary:hover{background:#005b8f;border-color:#005b8f;transform:translateY(-1px);}
.com-contact .contact-form .form-control.invalid{border-color:#d33;}
@media (max-width:767px){.com-contact>.row{padding:22px 18px 4px;justify-content:center;text-align:center;}.com-contact>.row>.col-lg-auto{margin:0 0 16px;}.com-contact>.contact-miscinfo{padding:0 18px 22px;}.com-contact .contact-form form.well{padding:22px 18px;}}
/* --- v1.6 Footer & Logo --- */
#sp-header .logo img{filter:brightness(0) invert(1);opacity:.96;}
#sp-footer{padding:30px 0 26px;}
#sp-footer .sp-column{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;}
#sp-footer .sp-module{margin:0;}
#sp-footer .tv-footer-links{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 22px;}
#sp-footer .tv-footer-links a{color:#fff;text-decoration:none;font-weight:500;opacity:.92;}
#sp-footer .tv-footer-links a:hover{opacity:1;text-decoration:underline;text-underline-offset:4px;}
#sp-footer .sp-copyright{margin:0;text-align:right;opacity:.85;font-size:.88rem;}
@media (max-width:767px){#sp-footer .sp-column{justify-content:center;text-align:center;}#sp-footer .tv-footer-links{justify-content:center;}#sp-footer .sp-copyright{text-align:center;width:100%;}}
/* ===== v2.0 Startseite: Hero & Story-Sektionen (Module "Startseite 01-06", Menüpunkt 151) ===== */
:root{--tv-accent:#f2783c;--tv-accent-dark:#d8622a;--tv-navy:#06203c;}
.itemid-151 #sp-main-body{padding-top:0;}
.itemid-151 .article-details{display:none;}
.itemid-151 #sp-component .sp-column{padding:0;}
#sp-title .sp-column{padding:0;}
/* Hero */
.tv-hero{position:relative;min-height:min(88vh,860px);display:flex;align-items:flex-end;background:#0c2a46 url('/images/startseite/hero-konzert-2400.jpg') center 30%/cover no-repeat;color:#fff;overflow:hidden;margin:0;}
.tv-hero::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,32,60,.15) 0%,rgba(6,32,60,.15) 35%,rgba(6,32,60,.82) 100%),linear-gradient(90deg,rgba(6,32,60,.55) 0%,rgba(6,32,60,0) 65%);}
.tv-hero__inner{position:relative;max-width:1320px;width:100%;margin:0 auto;padding:120px 24px 96px;}
.tv-hero__badge{display:inline-block;padding:9px 18px;border:1px solid rgba(255,255,255,.45);background:rgba(255,255,255,.14);border-radius:999px;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;font-weight:600;backdrop-filter:blur(6px);margin-bottom:22px;}
.tv-hero__title{color:#fff;font-size:clamp(2.6rem,6vw,5.2rem);font-weight:700;letter-spacing:-.02em;line-height:1.02;margin:0 0 16px;max-width:14ch;text-shadow:0 2px 24px rgba(0,0,0,.25);}
.tv-hero__sub{font-size:clamp(1.05rem,1.6vw,1.4rem);max-width:46ch;color:#e6eef8;margin:0 0 32px;}
.tv-hero__actions{display:flex;flex-wrap:wrap;gap:14px;}
.tv-btn{display:inline-flex;align-items:center;padding:14px 28px;border-radius:999px;font-weight:600;font-size:1rem;text-decoration:none!important;transition:transform .15s,background .15s,box-shadow .15s;}
.tv-btn--primary{background:var(--tv-accent);color:#fff!important;box-shadow:0 8px 22px rgba(242,120,60,.35);}
.tv-btn--primary:hover{background:var(--tv-accent-dark);transform:translateY(-2px);}
.tv-btn--ghost{border:2px solid rgba(255,255,255,.85);color:#fff!important;}
.tv-btn--ghost:hover{background:rgba(255,255,255,.14);transform:translateY(-2px);}
.tv-hero__scroll{position:absolute;left:50%;bottom:22px;width:26px;height:26px;margin-left:-13px;border-right:3px solid rgba(255,255,255,.8);border-bottom:3px solid rgba(255,255,255,.8);transform:rotate(45deg);animation:tvBounce 1.8s infinite;}
@keyframes tvBounce{0%,100%{transform:rotate(45deg) translate(0,0);opacity:.8}50%{transform:rotate(45deg) translate(5px,5px);opacity:1}}
@media (max-width:767px){.tv-hero{background-image:url('/images/startseite/hero-konzert-1200.jpg');background-position:36% 20%;min-height:78vh;}.tv-hero__inner{padding:90px 20px 72px;}.tv-hero__badge{font-size:.68rem;letter-spacing:.05em;}}
/* Sections */
.tv-section{padding:72px 0 8px;}
.tv-section__head{max-width:720px;margin-bottom:36px;}
.tv-eyebrow{color:var(--tv-accent);font-weight:700;text-transform:uppercase;letter-spacing:.14em;font-size:.8rem;margin:0 0 8px;}
.tv-eyebrow--light{color:#ffd1b8;}
.tv-section h2{font-size:clamp(1.8rem,3.2vw,2.5rem);margin:0 0 10px;letter-spacing:-.02em;}
.tv-lead{font-size:1.15rem;color:#4b5563;margin:0;}
.tv-link{font-weight:600;color:#0077bb;text-decoration:none;}
.tv-link::after{content:' →';transition:margin .15s;}
.tv-link:hover::after{margin-left:4px;}
.tv-section__more{margin:28px 0 0;}
/* Events */
.tv-events{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px;}
.tv-event{display:flex;gap:20px;background:#fff;border-radius:16px;padding:24px;box-shadow:0 8px 28px rgba(0,60,110,.07);transition:transform .15s,box-shadow .15s;}
.tv-event:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(0,60,110,.12);}
.tv-event__date{flex:0 0 76px;height:84px;border-radius:14px;background:#0077bb;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;}
.tv-event--probe .tv-event__date{background:var(--tv-accent);}
.tv-event__d{font-size:2rem;font-weight:700;}
.tv-event__m{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;margin-top:6px;opacity:.9;}
.tv-event__body h3{font-size:1.15rem;margin:4px 0 6px;color:#1f2937;}
.tv-event__body p{margin:0 0 8px;color:#4b5563;font-size:.97rem;line-height:1.5;}
/* Split */
.tv-split{display:grid;grid-template-columns:1.1fr 1fr;gap:56px;align-items:center;}
.tv-split--reverse .tv-split__media{order:2;}
.tv-split__media{margin:0;}
.tv-split__media img{width:100%;height:auto;border-radius:18px;box-shadow:0 18px 44px rgba(0,60,110,.16);}
.tv-split__media--portrait{max-width:420px;justify-self:center;}
.tv-split__media--portrait img{aspect-ratio:1/1.05;object-fit:cover;object-position:top;}
.tv-split__text p{font-size:1.05rem;}
.tv-facts{list-style:none;padding:0;margin:22px 0 26px;display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
.tv-facts li{background:#fff;border-radius:12px;padding:14px 16px;box-shadow:0 6px 18px rgba(0,60,110,.06);}
.tv-facts strong{display:block;color:#0077bb;font-size:1.05rem;}
.tv-facts span{font-size:.85rem;color:#6b7280;}
/* Band */
.tv-band{margin:72px 0 0;border-radius:22px;background:#0b3d66 url('/images/startseite/chor-applaus-1600.jpg') center/cover no-repeat;position:relative;overflow:hidden;color:#fff;}
.tv-band::before{content:'';position:absolute;inset:0;background:linear-gradient(100deg,rgba(0,80,140,.94) 0%,rgba(0,100,170,.78) 55%,rgba(0,100,170,.45) 100%);}
.tv-band__inner{position:relative;padding:64px 56px;max-width:640px;}
.tv-band h2{color:#fff;font-size:clamp(1.8rem,3.2vw,2.5rem);margin:0 0 14px;}
.tv-band p{font-size:1.08rem;color:#e6eef8;margin:0 0 26px;}
/* Gallery */
.tv-gallery{display:grid;grid-template-columns:1.4fr .8fr 1fr;gap:18px;}
.tv-gallery figure{margin:0;border-radius:16px;overflow:hidden;height:340px;box-shadow:0 10px 28px rgba(0,60,110,.1);}
.tv-gallery img{width:100%;height:100%;object-fit:cover;transition:transform .5s;}
.tv-gallery figure:hover img{transform:scale(1.04);}
.itemid-151 .tv-section:last-of-type{padding-bottom:64px;}
@media (max-width:991px){.tv-split{grid-template-columns:1fr;gap:28px;}.tv-split--reverse .tv-split__media{order:0;}.tv-split__media--portrait{max-width:320px;justify-self:start;}.tv-gallery{grid-template-columns:1fr 1fr;}.tv-gallery figure:first-child{grid-column:1/-1;}.tv-band__inner{padding:44px 28px;}.tv-facts{grid-template-columns:1fr;}}
@media (max-width:575px){.tv-section{padding:52px 0 0;}.tv-gallery{grid-template-columns:1fr;}.tv-gallery figure{height:230px;}}
/* ===== v2.1 Konzert-Sektion, Männer-Aufruf, Konzerte-Seite ===== */
.tv-btn--outline{border:2px solid #0077bb;color:#0077bb!important;background:#fff;}
.tv-btn--outline:hover{background:#eaf4fb;transform:translateY(-2px);}
.tv-section--tight{padding-top:56px;}
/* Konzert */
.tv-concert__card{display:grid;grid-template-columns:minmax(260px,380px) 1fr;gap:48px;align-items:start;background:#fff;border-radius:22px;padding:36px;box-shadow:0 14px 40px rgba(0,60,110,.09);}
.tv-concert__flyer{margin:0;}
.tv-concert__flyer img{width:100%;height:auto;border-radius:12px;box-shadow:0 12px 30px rgba(0,0,0,.18);transition:transform .25s;display:block;}
.tv-concert__flyer a:hover img{transform:translateY(-4px) scale(1.01);}
.tv-concert__body h2{font-size:clamp(1.5rem,2.4vw,2rem);line-height:1.2;}
.tv-concert__facts{list-style:none;margin:24px 0 18px;padding:0;display:grid;gap:12px;}
.tv-concert__facts li{display:grid;grid-template-columns:110px 1fr;gap:12px;padding:12px 0;border-top:1px solid #e8edf3;}
.tv-concert__facts li:first-child{border-top:0;padding-top:0;}
.tv-concert__k{font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;color:var(--tv-accent);font-weight:700;padding-top:4px;}
.tv-concert__v{color:#2b2f36;line-height:1.5;}
.tv-concert__v strong{color:#0077bb;font-size:1.12rem;}
.tv-concert__v small{color:#6b7280;}
.tv-concert__credits{color:#6b7280;font-size:.92rem;margin:0 0 22px;}
/* Männer */
.tv-men__card{display:grid;grid-template-columns:1.15fr 1fr;gap:0;background:#fff;border-radius:22px;overflow:hidden;box-shadow:0 14px 40px rgba(0,60,110,.09);border-left:10px solid var(--tv-accent);}
.tv-men__media{margin:0;min-height:360px;}
.tv-men__media img{width:100%;height:100%;object-fit:cover;display:block;}
.tv-men__body{padding:44px 48px;align-self:center;}
.tv-men__body h2{font-size:clamp(1.9rem,3.4vw,2.7rem);}
.tv-men__body p{font-size:1.08rem;}
.tv-checks{list-style:none;padding:0;margin:18px 0 26px;}
.tv-checks li{position:relative;padding-left:32px;margin-bottom:10px;}
.tv-checks li::before{content:'';position:absolute;left:0;top:4px;width:20px;height:20px;border-radius:50%;background:var(--tv-accent);}
.tv-checks li::after{content:'';position:absolute;left:7px;top:8px;width:5px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg);}
.tv-men .tv-hero__actions{align-items:center;}
/* Events past / tags */
.tv-event--past{opacity:.72;}
.tv-event--past .tv-event__date{background:#9aa5b5;}
.tv-tag{display:inline-block;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;background:#eef1f5;color:#6b7280;border-radius:999px;padding:4px 10px;}
.tv-note{color:#6b7280;font-size:.88rem;margin:22px 0 0;}
/* Konzerte-Seite */
.tv-page--konzerte .tv-concert--page{padding-top:8px;}
.tv-page--konzerte .tv-band--compact{margin:56px 0 24px;}
.tv-band--compact .tv-band__inner{padding:48px 48px;}
@media (max-width:991px){.tv-concert__card{grid-template-columns:1fr;gap:28px;padding:24px;}.tv-concert__flyer{max-width:360px;margin:0 auto;}.tv-men__card{grid-template-columns:1fr;border-left:0;border-top:10px solid var(--tv-accent);}.tv-men__media{min-height:0;}.tv-men__body{padding:28px 24px;}.tv-concert__facts li{grid-template-columns:1fr;gap:4px;}}
/* ===== v3.0 Farbwelt A «Nachtblau & Gold» + Typografie Fraunces/Inter (Roadmap Schritt 3) ===== */
/* Schriften lokal: templates/shaper_helixultimate/tvfonts/ (Fraunces + Inter, variable WOFF, Latin-Subset) */
@font-face{font-family:'Fraunces';font-style:normal;font-weight:500 700;font-display:swap;src:url(/templates/shaper_helixultimate/tvfonts/fraunces-var.woff) format('woff')}
@font-face{font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;src:url(/templates/shaper_helixultimate/tvfonts/inter-var.woff) format('woff')}
:root{
  --tv-navy:#10294A;
  --tv-blue:#1E66A8;
  --tv-blue-dark:#10294A;
  --tv-bg:#F7F4EE;
  --tv-accent:#D9A441;
  --tv-accent-dark:#C48F2E;
  --tv-accent-text:#10294A;
  --tv-gold-text:#8F6512;
  --tv-gold-soft:#F3E6C8;
  --tv-text:#23272E;
  --tv-muted:#5C6470;
  --tv-font-display:'Fraunces',Georgia,'Times New Roman',serif;
  --tv-font-body:'Inter',-apple-system,system-ui,'Segoe UI',Helvetica,Arial,sans-serif;
}
/* Grundschrift */
body,.sp-megamenu-parent,.btn,.form-control,input,button,select,textarea{font-family:var(--tv-font-body)}
body{color:var(--tv-text);background:var(--tv-bg)}
#sp-main,#sp-section-2,.body-wrapper{background:var(--tv-bg)}
h1,h2,h3,.h1,.h2,.h3,.tv-hero__title,.tv-facts strong,.tv-concert__card h2,.page-header h1,.article-header h1,.article-header h2,.com-contact h3,.tv-band h2,.tv-lane h3{font-family:var(--tv-font-display);font-weight:600;letter-spacing:-0.01em}
h2,.tv-section h2,.tv-concert__card h2,.tv-band h2{color:var(--tv-navy)}
h3,.tv-event__body h3{font-family:var(--tv-font-body);font-weight:600;letter-spacing:0}
.tv-hero__title{font-size:clamp(2.6rem,6vw,4.6rem);line-height:1.02}
.tv-section h2,.tv-concert__card h2,.tv-band h2{font-size:clamp(1.9rem,3.4vw,2.6rem);line-height:1.1}
.tv-facts strong{font-size:1.6rem;line-height:1.2}
/* Header, Menü, Footer */
#sp-header,#sp-header.header-sticky,.sp-header-sticky-wrapper #sp-header{background:var(--tv-navy)!important}
#sp-header .sp-megamenu-parent>li>a{color:#fff}
#sp-header .sp-megamenu-parent>li.active>a{color:var(--tv-accent)!important;background:transparent!important}
#sp-header .sp-megamenu-parent>li:hover>a{color:#fff!important;background:rgba(255,255,255,.12)!important}
#sp-header .sp-megamenu-parent .sp-dropdown li.sp-menu-item>a:hover,#sp-header .sp-megamenu-parent .sp-dropdown li.sp-menu-item.active>a{color:var(--tv-navy);background:var(--tv-gold-soft)}
#sp-footer,#sp-bottom{background:var(--tv-navy)!important;color:rgba(255,255,255,.85)}
#sp-footer .tv-footer-links a:hover{color:var(--tv-accent)}
.offcanvas-menu,.offcanvas-menu .offcanvas-inner{background:var(--tv-navy)}
/* Links */
a,.tv-link,.article-details a{color:var(--tv-blue)}
a:hover,.tv-link:hover{color:var(--tv-navy)}
/* Buttons */
.tv-btn--primary{background:var(--tv-accent)!important;color:var(--tv-accent-text)!important;box-shadow:0 10px 24px rgba(217,164,65,.35)}
.tv-btn--primary:hover{background:var(--tv-accent-dark)!important;color:var(--tv-navy)!important}
.tv-btn--outline{border-color:var(--tv-navy);color:var(--tv-navy)}
.tv-btn--outline:hover{background:var(--tv-navy);color:#fff}
.btn-primary,.com-contact .contact-form .btn-primary{background:var(--tv-accent)!important;border-color:var(--tv-accent)!important;color:var(--tv-navy)!important;box-shadow:0 8px 20px rgba(217,164,65,.3)}
.btn-primary:hover,.com-contact .contact-form .btn-primary:hover{background:var(--tv-accent-dark)!important;border-color:var(--tv-accent-dark)!important;color:var(--tv-navy)!important}
/* Hero */
.tv-hero{background-color:var(--tv-navy)}
.tv-hero::before{background:linear-gradient(180deg,rgba(16,41,74,.15) 0%,rgba(16,41,74,.82) 100%)}
.tv-hero__badge{background:var(--tv-accent);border-color:var(--tv-accent);color:var(--tv-navy);font-weight:600}
/* Eyebrows, Labels */
.tv-eyebrow{color:var(--tv-gold-text)}
.tv-eyebrow--light{color:#E6C57A}
.tv-concert__k{color:var(--tv-gold-text)}
.tv-concert__v strong{color:var(--tv-navy)}
/* Karten, Termine, Fakten */
.tv-event__date{background:var(--tv-navy)}
.tv-event__y{display:block;font-size:.62rem;letter-spacing:.08em;opacity:.8;margin-top:2px}
.tv-event--probe .tv-event__date{background:var(--tv-accent);color:var(--tv-navy)}
.tv-event--past .tv-event__date{background:#B7BCC6}
.tv-facts li{border-top:4px solid var(--tv-accent)}
.tv-facts strong{color:var(--tv-navy)}
.tv-men__card{border-color:var(--tv-accent)}
.tv-checks li::before{background:var(--tv-accent)}
.tv-checks li::after{color:var(--tv-navy)}
.tv-tag{background:#EFEAE0;color:#6B6F76}
.tv-past{margin-top:2.2rem}
.tv-past__title{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--tv-muted);margin:0 0 .9rem}
.tv-events--past .tv-event{box-shadow:none;background:rgba(255,255,255,.6)}
/* Bänder */
.tv-band{background-color:var(--tv-navy)}
.tv-band::before{background:linear-gradient(90deg,rgba(16,41,74,.94) 0%,rgba(16,41,74,.55) 100%)}
.tv-band--join .tv-band__inner{max-width:960px}
.tv-lanes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem;margin-top:1.6rem}
.tv-lane{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);border-radius:18px;padding:1.4rem 1.5rem;display:flex;flex-direction:column;gap:.6rem;align-items:flex-start}
.tv-band h2,.tv-band--compact h2,.tv-band--join h2{color:#fff}
.tv-lane h3{color:#fff;font-size:1.35rem;margin:0}
.tv-lane p{color:rgba(255,255,255,.88);margin:0 0 .4rem;font-size:.98rem}
.tv-lane .tv-btn{margin-top:auto}
@media (max-width:767px){.tv-lanes{grid-template-columns:1fr}}
/* Kontaktseite */
.com-contact .contact-position,.com-contact .contact-form legend{color:var(--tv-navy)}
.com-contact .contact-form .form-control:focus{border-color:var(--tv-blue);box-shadow:0 0 0 .2rem rgba(30,102,168,.15)}
.com-contact .contact-form .form-check-input:checked{background-color:var(--tv-navy);border-color:var(--tv-navy)}
/* Beitragsseiten */
.view-category .article-list .article,.com-content-article{background:#fff}
/* v3.0 Fixes */
body.com-contact{max-width:none!important;margin:0!important}
#sp-component .com-contact{max-width:860px;margin:0 auto}
@media (min-width:992px){.tv-page--konzerte .tv-events{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* ===== Ende v3.0 ===== */
/* ===== v3.1 Abstände, Teilen, Kontakt-Thema, Datum-Automatik ===== */
.tv-expired,.tv-notyet{display:none!important}
.tv-section{padding-top:3rem;padding-bottom:1.5rem}
.tv-band{margin-top:3rem}
.tv-share{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:1.1rem;padding-top:1rem;border-top:1px solid #EFE9DC}
.tv-share__label{font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--tv-muted);margin-right:.3rem}
.tv-share__btn{display:inline-flex;align-items:center;gap:.45rem;height:38px;padding:0 .9rem;border-radius:999px;border:1.5px solid #D9D2C3;background:#fff;color:var(--tv-navy);font-size:.88rem;font-weight:600;text-decoration:none;cursor:pointer;font-family:var(--tv-font-body);line-height:1}
.tv-share__btn:hover{border-color:var(--tv-navy);color:var(--tv-navy);background:#FBF8F1}
.tv-share__btn i{font-size:1.05rem}
.tv-share__hint{flex-basis:100%;font-size:.8rem;color:var(--tv-muted);margin:.2rem 0 0}
.tv-topic{background:var(--tv-gold-soft);border-left:4px solid var(--tv-accent);border-radius:12px;padding:1rem 1.2rem;margin:0 0 1.2rem}
.tv-topic strong{display:block;color:var(--tv-navy);margin-bottom:.25rem}
.tv-topic p{margin:0;font-size:.95rem}
@media (max-width:767px){.tv-section{padding-top:2.2rem;padding-bottom:1rem}.tv-band{margin-top:2.2rem}}
/* ===== Ende v3.1 ===== */
/* ===== v3.2 Chorleitung-Seite (Personenkarte, Chips, Werdegang, Galerie) ===== */
.tv-person{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);gap:2.5rem;align-items:start}
.tv-person__photo{margin:0;border-radius:22px;overflow:hidden;box-shadow:0 20px 50px rgba(16,41,74,.12);background:#fff}
.tv-person__photo img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:top}
.tv-person__text h2{margin:.2rem 0 .6rem}
.tv-person__text p{color:var(--tv-text)}
.tv-chips{list-style:none;padding:0;margin:.4rem 0 1.2rem;display:flex;flex-wrap:wrap;gap:.45rem}
.tv-chips li{font-size:.82rem;font-weight:600;color:var(--tv-navy);background:var(--tv-gold-soft);border-radius:999px;padding:.35rem .8rem}
.tv-details{margin-top:1rem;border:1px solid #E6E0D4;border-radius:14px;background:#fff}
.tv-details summary{cursor:pointer;padding:.9rem 1.1rem;font-weight:600;color:var(--tv-navy);list-style:none;display:flex;align-items:center;gap:.6rem}
.tv-details summary::-webkit-details-marker{display:none}
.tv-details summary::before{content:'';width:.55rem;height:.55rem;border-right:2px solid var(--tv-accent);border-bottom:2px solid var(--tv-accent);transform:rotate(-45deg);transition:transform .2s;margin-left:.2rem}
.tv-details[open] summary::before{transform:rotate(45deg)}
.tv-details__body{padding:0 1.1rem 1rem;font-size:.95rem;color:var(--tv-muted)}
.tv-details__body p{margin:0 0 .8rem}
.tv-gallery--3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem}
.tv-gallery--3 figure{margin:0;border-radius:18px;overflow:hidden;box-shadow:0 14px 34px rgba(16,41,74,.1)}
.tv-gallery--3 img{display:block;width:100%;height:100%;aspect-ratio:4/3;object-fit:cover}
@media (max-width:991px){.tv-person{grid-template-columns:1fr}.tv-person__photo{max-width:320px}.tv-gallery--3{grid-template-columns:1fr 1fr}}
@media (max-width:575px){.tv-gallery--3{grid-template-columns:1fr}}
/* ===== Ende v3.2 ===== */
/* ===== v3.3 Teilen kompakt, Kalender, YouTube Klick-zum-Laden ===== */
.tv-share{display:inline-flex;align-items:center;gap:.4rem;margin:0 0 0 auto;padding:0;border:0;flex-wrap:nowrap}
.tv-hero__actions{display:flex;flex-wrap:wrap;align-items:center;gap:.8rem}
.tv-share__label{font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--tv-muted);margin-right:.2rem}
.tv-share__icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;border:1.5px solid #D9D2C3;background:#fff;color:var(--tv-navy);font-size:1.05rem;text-decoration:none;cursor:pointer;transition:all .15s;padding:0}
.tv-share__icon:hover{background:var(--tv-accent);border-color:var(--tv-accent);color:var(--tv-navy)}
.tv-event__ics{display:inline-flex;align-items:center;gap:.35rem;margin-top:.6rem;font-size:.82rem;font-weight:600;color:var(--tv-blue);text-decoration:none}
.tv-event__ics:hover{color:var(--tv-navy)}
.tv-ics.tv-btn i{margin-right:.45rem}
.tv-yt{position:relative;aspect-ratio:16/9;border-radius:18px;overflow:hidden;background:var(--tv-navy) center/cover no-repeat;cursor:pointer;box-shadow:0 14px 34px rgba(16,41,74,.12)}
.tv-yt::after{content:'';position:absolute;left:50%;top:50%;width:68px;height:68px;margin:-34px 0 0 -34px;border-radius:50%;background:var(--tv-accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%2310294A' d='M8 5v14l11-7z'/%3E%3C/svg%3E") center/32px no-repeat;box-shadow:0 8px 20px rgba(0,0,0,.25)}
.tv-yt--on::after{display:none}
.tv-yt iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.tv-yt__label{position:absolute;left:0;right:0;bottom:0;padding:.8rem 1rem;color:#fff;font-weight:600;background:linear-gradient(transparent,rgba(16,41,74,.8))}
@media (max-width:575px){.tv-share{margin-left:0}}
/* ===== Ende v3.3 ===== */
/* ===== v3.4 Kontaktseite im Stil v3 ===== */
.com-contact>.row h2{font-family:var(--tv-font-body);font-size:.78rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--tv-gold-text);margin:0 0 .6rem}
.com-contact>.row h2::after{content:'Schreib uns';display:block;font-family:var(--tv-font-display);font-weight:600;font-size:clamp(1.9rem,3.4vw,2.6rem);line-height:1.1;letter-spacing:-0.01em;text-transform:none;color:var(--tv-navy);margin-top:.35rem}
.com-contact .contact-position .me-2{display:none}
.com-contact .contact-position div[itemprop=jobTitle]{font-family:var(--tv-font-display);font-weight:600;font-size:1.5rem;color:var(--tv-navy)}
.com-contact .contact-info .mb-4:not(.contact-address){display:none}
.com-contact>.row img{border:4px solid var(--tv-gold-soft)}
.com-contact>.contact-miscinfo{border-left:4px solid var(--tv-accent)}
.com-contact>h2{font-size:1.6rem;margin-top:2.2rem}
.com-contact .contact-form legend{font-family:var(--tv-font-display);font-weight:600;font-size:1.35rem;color:var(--tv-navy)}
.com-contact .contact-form label{font-weight:600;color:var(--tv-navy)}
.com-contact .contact-form .form-control{border-radius:12px;border-color:#E3DCCD;background:#FCFBF8}
/* ===== Ende v3.4 ===== */
/* ===== v3.5 Vorstand-Seite ===== */
.itemid-113 .category-desc{margin:0 0 2rem}
body.itemid-113.view-category .article-list .article{display:flex;flex-direction:column;align-items:center;text-align:center;padding:2.2rem 1.5rem 1.8rem;margin-bottom:1.6rem}
body.itemid-113 .article-list .article .article-intro-image{float:none!important;width:150px;height:150px;border-radius:50%!important;border-bottom:0!important;overflow:hidden;margin:0 0 1.1rem!important;border:4px solid var(--tv-gold-soft)!important;box-shadow:0 10px 24px rgba(16,41,74,.12);max-width:150px}
body.itemid-113 .article-list .article .article-intro-image a{display:block;width:100%;height:100%}
body.itemid-113 .article-list .article .article-intro-image img{width:100%;height:100%;object-fit:cover;object-position:top;border-radius:50%!important}
.itemid-113 .article-body{width:100%}
body.itemid-113.view-category .article-list .article .article-header h2{font-size:1.45rem;margin:0 0 .25rem;line-height:1.15}
body.itemid-113.view-category .article-list .article .article-header h2 a{color:var(--tv-navy);pointer-events:none}
.itemid-113 .article-introtext strong{font-family:var(--tv-font-body);font-size:.74rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--tv-gold-text)}
.itemid-113 .article-introtext p{margin:.6rem 0 0;font-size:.9rem}
.itemid-113 .article-introtext a{color:var(--tv-blue);word-break:break-all}
/* ===== Ende v3.5 ===== */
/* ===== v3.6 Termine für Mitglieder, Infobox, Vorstand gleich hoch ===== */
.tv-muted{color:var(--tv-muted);font-size:.9em}
.tv-events--list{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (min-width:992px){.tv-page--termine .tv-events--list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:767px){.tv-events--list{grid-template-columns:1fr}}
.tv-event--ferien{background:transparent;box-shadow:none;border:1.5px dashed #D9D2C3}
.tv-event--ferien .tv-event__date{background:var(--tv-gold-soft);color:var(--tv-navy)}
.tv-event--ferien .tv-event__body h3{font-weight:500;color:var(--tv-muted)}
.tv-event--open .tv-event__date{background:#fff;color:var(--tv-navy);border:1.5px dashed var(--tv-accent)}
.tv-page--termine .tv-section__head .tv-hero__actions{margin-top:1.2rem}
.tv-infobox{margin-top:1.6rem;background:#fff;border-left:4px solid var(--tv-accent);border-radius:12px;padding:1rem 1.2rem;max-width:720px}
.tv-infobox strong{display:block;color:var(--tv-navy);margin-bottom:.25rem}
.tv-infobox p{margin:0;font-size:.95rem;color:var(--tv-muted)}
body.itemid-113 .article-list .row>[class*=col-]{display:flex}
body.itemid-113.view-category .article-list .article{flex:1 1 auto;width:100%}
/* ===== Ende v3.6 ===== */
/* ===== v3.7 Mitsingen- und Über-uns-Seite (Fakten, Schritte, Anreise, Kacheln, Zitat) ===== */
.tv-facts--4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:991px){.tv-facts--4{grid-template-columns:repeat(2,minmax(0,1fr))}}
.tv-facts a{color:var(--tv-blue)}
.tv-steps{list-style:none;counter-reset:tv;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.2rem}
.tv-steps li{counter-increment:tv;background:#fff;border-radius:18px;padding:1.6rem 1.4rem 1.4rem;box-shadow:0 14px 34px rgba(16,41,74,.07);position:relative}
.tv-steps li::before{content:counter(tv);display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--tv-accent);color:var(--tv-navy);font-family:var(--tv-font-display);font-weight:600;font-size:1.2rem;margin-bottom:.8rem}
.tv-steps strong{display:block;font-family:var(--tv-font-display);font-size:1.25rem;color:var(--tv-navy);margin-bottom:.3rem}
.tv-steps span{font-size:.95rem;color:var(--tv-muted)}
@media (max-width:991px){.tv-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:575px){.tv-steps{grid-template-columns:1fr}}
.tv-anreise{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:1.6rem;align-items:start}
.tv-anreise__map{border-radius:18px;overflow:hidden;box-shadow:0 14px 34px rgba(16,41,74,.1);background:#e9e4d8;min-height:320px}
.tv-anreise__map iframe{display:block;width:100%;height:100%;min-height:420px;border:0}
.tv-anreise__text{display:grid;gap:1.2rem}
.tv-anreise__item{background:#fff;border-radius:18px;padding:1.2rem 1.3rem;box-shadow:0 14px 34px rgba(16,41,74,.07)}
.tv-anreise__item strong{display:block;font-family:var(--tv-font-display);font-size:1.2rem;color:var(--tv-navy);margin-bottom:.3rem}
.tv-anreise__item p{margin:0 0 .8rem;font-size:.95rem;color:var(--tv-muted)}
.tv-anreise__item img{display:block;width:100%;height:auto;border-radius:12px}
@media (max-width:991px){.tv-anreise{grid-template-columns:1fr}}
.tv-quote{margin:0 auto 1rem;max-width:820px;text-align:center}
.tv-quote p{font-family:var(--tv-font-display);font-size:clamp(1.5rem,3vw,2.2rem);line-height:1.25;color:var(--tv-navy);margin:0}
.tv-lead--center{text-align:center;max-width:760px;margin:0 auto}
.tv-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.2rem}
.tv-tile{display:flex;flex-direction:column;background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 14px 34px rgba(16,41,74,.08);text-decoration:none;color:var(--tv-text);transition:transform .2s,box-shadow .2s}
.tv-tile:hover{transform:translateY(-3px);box-shadow:0 20px 44px rgba(16,41,74,.14);color:var(--tv-text)}
.tv-tile img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
.tv-tile__body{display:block;padding:1rem 1.2rem 1.2rem}
.tv-tile__body strong{display:block;font-family:var(--tv-font-display);font-size:1.3rem;color:var(--tv-navy);margin-bottom:.2rem}
.tv-tile__body span{display:block;font-size:.9rem;color:var(--tv-muted)}
@media (max-width:991px){.tv-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:575px){.tv-tiles{grid-template-columns:1fr}}
.tv-page--mitsingen .tv-band--join .tv-band__inner{max-width:1040px}
/* ===== Ende v3.7 ===== */
/* ===== v3.8 Vereinsleben (Momente, Galerie, Videos) ===== */
.tv-moment{padding-top:2.4rem;padding-bottom:1.2rem;border-top:1px solid #E6E0D4}
.tv-moment__head{display:grid;grid-template-columns:200px minmax(0,1fr);gap:.4rem 1.4rem;align-items:start;margin-bottom:1.4rem}
.tv-moment__head .tv-eyebrow{margin:.35rem 0 0;letter-spacing:0;font-family:var(--tv-font-display);text-transform:none;font-weight:600;font-size:1.15rem;color:var(--tv-gold-text);grid-row:span 2}
.tv-moment__head h3{font-family:var(--tv-font-display);font-weight:600;font-size:clamp(1.5rem,2.6vw,2rem);line-height:1.15;color:var(--tv-navy);margin:0;grid-column:2}
.tv-moment__head .tv-lead{margin:0;max-width:760px;grid-column:2}
@media (max-width:767px){.tv-moment__head{grid-template-columns:1fr}.tv-moment__head .tv-eyebrow{grid-row:auto}.tv-moment__head h3,.tv-moment__head .tv-lead{grid-column:1}}
.tv-gal{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:220px;gap:1rem;grid-auto-flow:dense}
.tv-gal:has(> .tv-gal__item:nth-child(3):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}
.tv-gal__item{margin:0;border-radius:16px;overflow:hidden;box-shadow:0 10px 26px rgba(16,41,74,.08);background:#e9e4d8}
.tv-gal__item a,.tv-gal__item img{display:block;width:100%;height:100%}
.tv-gal__item img{object-fit:cover;transition:transform .4s}
.tv-gal__item:hover img{transform:scale(1.03)}
.tv-gal__item--wide{grid-column:span 2;grid-row:span 2}
@media (max-width:991px){.tv-gal{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:180px}}
@media (max-width:575px){.tv-gal{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:140px}.tv-gal__item--wide{grid-column:span 2;grid-row:span 1}}
.tv-yt-wrap{margin-top:1rem;max-width:760px}
.tv-yt-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
@media (max-width:767px){.tv-yt-grid{grid-template-columns:1fr}}
.tv-yt{background-image:linear-gradient(135deg,#10294A,#1E66A8)}
/* ===== Ende v3.8 ===== */

/* ===== v3.9 Termine für Mitglieder: Agenda-Liste, Jahresgruppen, vergangene Termine einklappen ===== */
.tv-year{font-family:var(--tv-font-display);font-weight:600;font-size:1.7rem;color:var(--tv-navy);margin:1.4rem 0 .9rem;display:flex;align-items:center;gap:1rem}
.tv-year::after{content:'';flex:1;height:1px;background:#E6E0D4}
.tv-agenda{display:flex;flex-direction:column;gap:.6rem}
.tv-agenda .tv-event{display:grid;grid-template-columns:64px minmax(0,1fr);gap:1rem;align-items:center;padding:.75rem 1rem;border-radius:14px;background:#fff;box-shadow:0 6px 18px rgba(16,41,74,.06);margin:0}
.tv-agenda .tv-event__date{width:64px;height:64px;min-width:64px;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}
.tv-agenda .tv-event__d{font-size:1.5rem;font-weight:700}
.tv-agenda .tv-event__m{font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;margin-top:2px}
.tv-agenda .tv-event__body{display:flex;flex-wrap:wrap;align-items:baseline;gap:.2rem 1rem}
.tv-agenda .tv-event__body h3{font-size:1.05rem;margin:0;flex-basis:100%}
.tv-agenda .tv-event__body p{margin:0;font-size:.9rem;color:var(--tv-muted);flex:1 1 60%}
.tv-agenda .tv-event__body p .tv-muted{display:block;font-size:.85rem}
.tv-agenda .tv-event__ics{margin:0;font-size:.8rem;white-space:nowrap}
.tv-agenda .tv-event--ferien{background:transparent;box-shadow:none;border:1px dashed #D9D2C3;padding:.45rem 1rem}
.tv-agenda .tv-event--ferien .tv-event__date{width:52px;height:52px;min-width:52px}
.tv-agenda .tv-event--ferien .tv-event__body h3{font-size:.95rem}
.tv-agenda .tv-event--past{opacity:.75}
.tv-past-members{margin-top:1.2rem}
.tv-past-members .tv-agenda{padding:0 1rem 1rem}
.tv-count{color:var(--tv-muted);font-weight:500}
.tv-page--termine .tv-note{margin-top:1.2rem}
@media (max-width:575px){.tv-agenda .tv-event{grid-template-columns:56px minmax(0,1fr);padding:.7rem .8rem}.tv-agenda .tv-event__date{width:56px;height:56px;min-width:56px}}
/* ===== Ende v3.9 ===== */

/* ===== v3.10 Danke-Seite, Button-Icons ===== */
.tv-btn i{margin-right:.45rem}
.tv-thanks{max-width:720px;margin:2rem auto;text-align:center;background:#fff;border-radius:24px;padding:3rem 2.5rem;box-shadow:0 20px 50px rgba(16,41,74,.08)}
.tv-thanks__icon{width:72px;height:72px;border-radius:50%;background:var(--tv-accent);color:var(--tv-navy);display:flex;align-items:center;justify-content:center;font-size:1.8rem;margin:0 auto 1.2rem}
.tv-thanks h2{margin:.3rem 0 .8rem}
.tv-thanks .tv-lead{margin:0 auto 1.4rem}
.tv-thanks .tv-hero__actions{justify-content:center}
/* ===== Ende v3.10 ===== */

/* ===== v3.11 Vereinsstatuten (Inhaltsverzeichnis + Text) ===== */
.tv-statuten{display:grid;grid-template-columns:260px minmax(0,1fr);gap:2.5rem;align-items:start;margin-top:1.5rem}
.tv-toc{position:sticky;top:96px;background:#fff;border-radius:18px;padding:1.2rem 1.3rem;box-shadow:0 10px 26px rgba(16,41,74,.07)}
.tv-toc strong{display:block;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--tv-gold-text);margin-bottom:.6rem}
.tv-toc ol{margin:0;padding-left:1.4rem;font-size:.88rem;line-height:1.5}
.tv-toc li{margin:.15rem 0}
.tv-toc a{color:var(--tv-navy);text-decoration:none}
.tv-toc a:hover{color:var(--tv-blue)}
.tv-statuten__text{background:#fff;border-radius:22px;padding:2.2rem 2.6rem;box-shadow:0 14px 34px rgba(16,41,74,.07);max-width:820px}
.tv-statuten__text section{padding:1.2rem 0;border-bottom:1px solid #EFE9DC;scroll-margin-top:100px}
.tv-statuten__text section:last-child{border-bottom:0}
.tv-statuten__text h3{font-family:var(--tv-font-display);font-weight:600;font-size:1.35rem;color:var(--tv-navy);margin:0 0 .7rem;display:flex;align-items:baseline;gap:.7rem}
.tv-statuten__text h3 span{font-family:var(--tv-font-body);font-size:.8rem;font-weight:700;color:var(--tv-gold-text);letter-spacing:.04em;min-width:1.6rem}
.tv-statuten__text p{margin:0 0 .8rem;font-size:1rem}
.tv-statuten__text ul{margin:.2rem 0 .9rem 1.2rem;padding:0}
.tv-statuten__text li{margin:.2rem 0}
@media (max-width:991px){.tv-statuten{grid-template-columns:1fr}.tv-toc{position:static}.tv-statuten__text{padding:1.6rem 1.3rem}}
/* ===== Ende v3.11 ===== */

/* ===== v3.12 Review: h1-Seitentitel, Rechtsseiten, Kontakt-Titel, Barrierefreiheit, Konsistenz ===== */
/* Seitentitel sind jetzt h1 (gleiche Optik wie bisher h2) */
.tv-section h1,.tv-section__head h1,.tv-concert__body h1,.tv-person__text h1,.tv-split__text h1,.tv-thanks h1,.category-desc h1{font-family:var(--tv-font-display);font-weight:600;letter-spacing:-0.02em;color:var(--tv-navy);font-size:clamp(1.9rem,3.4vw,2.6rem);line-height:1.1;margin:0 0 10px}
.tv-concert__body h1{font-size:clamp(1.5rem,2.4vw,2rem);line-height:1.2}
.tv-person__text h1{margin:.2rem 0 .6rem}
.tv-thanks h1{margin:.3rem 0 .8rem}
/* Kontaktseite: echte Seitenüberschrift (Menü: Seitenüberschrift anzeigen) als Kartenkopf */
.com-contact>h1{order:1;background:#fff;border-radius:14px 14px 0 0;padding:28px 32px 0;box-shadow:0 8px 28px rgba(0,60,110,.06);margin:0;font-size:clamp(1.9rem,3.4vw,2.6rem);line-height:1.1;color:var(--tv-navy)}
.com-contact>h1::before{content:'Kontakt';display:block;font-family:var(--tv-font-body);font-size:.78rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--tv-gold-text);margin:0 0 .35rem}
.com-contact>h1::after{content:'';display:block;height:.6rem}
.com-contact>.row{border-radius:0;padding-top:4px}
.com-contact>.row>h2{display:none}
.com-contact>.row h2::after{content:none}
@media (max-width:767px){.com-contact>h1{padding:22px 18px 0;text-align:center}}
/* Rechtsseiten (Impressum, Datenschutz) */
.tv-legal{background:#fff;border-radius:22px;padding:2.2rem 2.6rem;box-shadow:0 14px 34px rgba(16,41,74,.07);max-width:860px;margin-top:1.5rem}
.tv-legal h2{font-size:1.45rem;line-height:1.2;margin:1.8rem 0 .6rem}
.tv-legal h2:first-child{margin-top:0}
.tv-legal h3{font-family:var(--tv-font-display);font-weight:600;font-size:1.15rem;color:var(--tv-navy);margin:1.2rem 0 .4rem}
.tv-legal p,.tv-legal li{font-size:1rem}
.tv-legal ul{margin:.2rem 0 .9rem 1.2rem;padding:0}
.tv-legal li{margin:.2rem 0}
.tv-legal__cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-bottom:1.6rem}
.tv-legal__card{background:var(--tv-bg);border-radius:14px;padding:1.1rem 1.2rem}
.tv-legal__card strong{display:block;font-family:var(--tv-font-body);font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--tv-gold-text);margin-bottom:.5rem}
.tv-legal__card p{margin:0 0 .6rem;font-size:.95rem}
.tv-legal__card p:last-child{margin:0}
.tv-review{margin:0 0 1.2rem;max-width:860px}
.tv-ins{background:#E3F3E6;text-decoration:none;box-shadow:inset 0 -2px 0 #2E8B57;padding:0 .1em}
.tv-del{color:#9B3B2E;background:#FBE9E5;text-decoration:line-through;padding:0 .1em}
@media (max-width:991px){.tv-legal__cards{grid-template-columns:1fr}.tv-legal{padding:1.6rem 1.3rem}}
/* Barrierefreiheit: sichtbarer Fokus, Sprunglink, weniger Bewegung */
a:focus-visible,button:focus-visible,.tv-btn:focus-visible,.tv-share__icon:focus-visible,.tv-yt:focus-visible,summary:focus-visible,[tabindex]:focus-visible,.form-control:focus-visible{outline:3px solid var(--tv-accent)!important;outline-offset:3px}
.tv-skip{position:absolute;left:-999px;top:10px;z-index:10000;background:var(--tv-accent);color:var(--tv-navy)!important;padding:.7rem 1.1rem;border-radius:999px;font-weight:700;text-decoration:none}
.tv-skip:focus{left:12px}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001s!important;animation-iteration-count:1!important;transition-duration:.001s!important;scroll-behavior:auto!important}}
/* Konsistenz: Restbestände der alten Blau-/Orange-Welt */
.tv-btn--outline{border-color:var(--tv-navy)!important;color:var(--tv-navy)!important;background:#fff}
.tv-btn--outline:hover{background:var(--tv-navy)!important;color:#fff!important}
.sp-scroll-up{background:var(--tv-navy)}
.sp-scroll-up:hover{background:var(--tv-accent);color:var(--tv-navy)}
h4,h5,h6{color:var(--tv-navy)}
.tv-section__head .tv-hero__actions{margin-top:1.2rem}
/* ===== Ende v3.12 ===== */

/* ===== v3.13 Hero: Vereinsname prominent; Mitglieder-Termine: Ferien als Trenner ===== */
.tv-hero__name{display:block;font-family:var(--tv-font-display);font-weight:600;font-size:clamp(1.7rem,3.4vw,2.8rem);letter-spacing:.01em;line-height:1.1;color:var(--tv-accent);margin:0 0 .3rem;text-shadow:0 2px 18px rgba(0,0,0,.35)}
.tv-agenda .tv-event--divider{display:flex;flex-wrap:wrap;align-items:baseline;gap:.2rem .8rem;background:transparent;box-shadow:none;border:0;border-top:1px dashed #CFC7B6;border-radius:0;padding:.8rem .4rem .2rem;margin-top:.5rem}
.tv-event--divider .tv-divider__name{font-family:var(--tv-font-display);font-weight:600;font-size:1.05rem;color:var(--tv-gold-text)}
.tv-event--divider .tv-divider__meta{font-size:.85rem;color:var(--tv-muted)}
.tv-agenda .tv-event--divider.tv-event--past{opacity:.6}
/* ===== Ende v3.13 ===== */

/* ===== v3.14 Mitsingen: Anreise-Karte füllt die Höhe, Schnupper-Button unter den Schritten ===== */
.tv-anreise{align-items:stretch}
.tv-anreise__map{display:flex;min-height:420px}
.tv-anreise__map iframe{flex:1 1 auto;height:auto;min-height:420px}
.tv-steps__cta{margin-top:1.4rem}
.tv-steps__cta .tv-muted{font-size:.9rem}
#tv-anreise{scroll-margin-top:90px}
/* ===== Ende v3.14 ===== */

/* ===== v3.15 Vereinsleben: Galerien mit 6 Bildern in 3 Spalten (kein Einzelbild in letzter Reihe) ===== */
@media (min-width:992px){.tv-gal:has(> .tv-gal__item:nth-child(6):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:992px){.tv-gal:has(> .tv-gal__item:nth-child(8):last-child) > .tv-gal__item:nth-child(5){grid-column:span 2}}
/* ===== Ende v3.15 ===== */

/* ===== v3.16 Konzerte-Seite als Agenda mit Jahresgruppen ===== */
.tv-agenda .tv-year{margin:1.2rem 0 .3rem}
.tv-agenda .tv-year:first-child{margin-top:.2rem}
.tv-agenda--past .tv-year{font-size:1.2rem;color:var(--tv-muted);margin-top:.8rem}
.tv-agenda--past .tv-event{box-shadow:none;background:rgba(255,255,255,.6)}
.tv-agenda .tv-event__body h3{font-size:1.1rem}
.tv-page--konzerte .tv-past{margin-top:2.4rem}
/* ===== Ende v3.16 ===== */

/* ===== v3.17 Hero: Konzert-Button als Call-to-Action (ersetzt Badge) ===== */
.tv-hero__name{margin-bottom:.4rem}
.tv-btn--event{padding:12px 24px 12px 20px;text-align:left;line-height:1.15}
.tv-btn--event i{font-size:1.3rem;margin-right:.7rem}
.tv-btn--event span{display:flex;flex-direction:column}
.tv-btn--event small{font-size:.74rem;font-weight:600;letter-spacing:.04em;opacity:.85;margin-top:2px}
@media (max-width:575px){.tv-hero__actions{flex-direction:column;align-items:stretch}.tv-hero__actions .tv-btn{justify-content:center}.tv-btn--event{justify-content:flex-start}}
/* ===== Ende v3.17 ===== */

/* ===== v3.18 Mobile-Menü (Offcanvas) lesbar: weisse Einträge auf Nachtblau ===== */
.offcanvas-menu{background:var(--tv-navy)!important;color:#fff}
.offcanvas-menu .offcanvas-inner ul.menu li a,.offcanvas-menu .offcanvas-inner ul.menu li>span{color:#fff!important;font-family:var(--tv-font-body);font-weight:600;font-size:1.15rem}
.offcanvas-menu .offcanvas-inner ul.menu>li>a{padding:.9rem 0;border-bottom:1px solid rgba(255,255,255,.12)}
.offcanvas-menu .offcanvas-inner ul.menu>li.active>a,.offcanvas-menu .offcanvas-inner ul.menu li a:hover{color:var(--tv-accent)!important}
.offcanvas-menu .offcanvas-inner ul.menu .menu-child li a{color:rgba(255,255,255,.85)!important;font-weight:500;font-size:1rem;padding:.55rem 0 .55rem 1rem;border-bottom:0}
.offcanvas-menu .menu-toggler{color:#fff!important;border-color:#fff!important}
.offcanvas-menu .menu-toggler::before,.offcanvas-menu .menu-toggler::after{border-color:#fff!important;background:transparent!important}
.offcanvas-menu .close-offcanvas{border:2px solid var(--tv-accent);border-radius:8px;opacity:1}
.offcanvas-menu .close-offcanvas .burger-icon>span{background:#fff!important}
.offcanvas-menu .offcanvas-inner{padding:0 1.5rem 2rem}
/* Hamburger im Header (Nachtblau) weiss */
#sp-header .burger-icon>span,.sp-header-sticky-wrapper .burger-icon>span{background:#fff!important}
/* ===== Ende v3.18 ===== */

/* ===== v3.19 Kontaktseite: Co-Präsidium zu zweit (Dorothee & Marco), Standard-Kontaktzeile ausgeblendet ===== */
.com-contact>.row{display:none}
.com-contact>.contact-miscinfo{padding-top:4px}
.tv-duo{display:flex;flex-wrap:wrap;gap:1rem 2.5rem;margin:.4rem 0 1.1rem}
.tv-duo figure{margin:0;display:flex;align-items:center;gap:.9rem}
.tv-duo img{width:96px;height:96px;border-radius:50%;object-fit:cover;object-position:top;border:4px solid var(--tv-gold-soft);box-shadow:0 6px 18px rgba(16,41,74,.14);flex:0 0 auto}
.tv-duo figcaption strong{display:block;font-family:var(--tv-font-display);font-weight:600;font-size:1.25rem;color:var(--tv-navy);line-height:1.15}
.tv-duo figcaption span{display:block;font-size:.88rem;color:var(--tv-muted);margin-top:.15rem}
@media (max-width:767px){.tv-duo{flex-wrap:nowrap;justify-content:center;gap:1rem}.tv-duo figure{flex:1 1 0;flex-direction:column;text-align:center;gap:.5rem}.tv-duo img{width:84px;height:84px}.tv-duo figcaption strong{font-size:1.1rem}}
/* ===== Ende v3.19 ===== */

/* ===== v3.20 Sponsoring: Partnerschaftsstufen (.tv-tiers) und Logo-Raster für das Joomla-Banner-Modul (.tv-sponsors) ===== */
.tv-tiers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem;align-items:stretch}
.tv-tier{position:relative;background:#fff;border-radius:20px;padding:1.6rem 1.5rem 1.5rem;box-shadow:0 14px 34px rgba(16,41,74,.07);border-top:4px solid #E6E0D4}
.tv-tier--featured{border-top-color:var(--tv-accent);box-shadow:0 20px 44px rgba(16,41,74,.12)}
.tv-tier__badge{position:absolute;top:-.8rem;right:1.2rem;background:var(--tv-accent);color:var(--tv-navy);font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:.3rem .7rem;border-radius:999px;margin:0}
.tv-tier__name{font-family:var(--tv-font-display);font-weight:600;font-size:1.6rem;color:var(--tv-navy);margin:0}
.tv-tier__sub{color:var(--tv-muted);font-size:.9rem;margin:.2rem 0 1rem}
.tv-tier ul{list-style:none;margin:0;padding:0}
.tv-tier li{position:relative;padding:.45rem 0 .45rem 1.6rem;border-top:1px solid #F0EBE0;font-size:.97rem}
.tv-tier li::before{content:'';position:absolute;left:0;top:.75rem;width:.9rem;height:.9rem;border-radius:50%;background:var(--tv-gold-soft)}
.tv-tier li::after{content:'';position:absolute;left:.3rem;top:.9rem;width:.28rem;height:.5rem;border:solid var(--tv-gold-text);border-width:0 2px 2px 0;transform:rotate(45deg)}
@media (max-width:991px){.tv-tiers{grid-template-columns:1fr}}
/* Logo-Raster: Joomla-Bannermodul (mod_banners) mit Modulklassensuffix " tv-sponsors" */
.tv-sponsors .bannergroup{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-top:1.4rem}
.tv-sponsors .banneritem{background:#fff;border-radius:16px;box-shadow:0 10px 26px rgba(16,41,74,.06);padding:1.2rem 1.4rem;display:flex;align-items:center;justify-content:center;min-height:120px;transition:transform .2s,box-shadow .2s}
.tv-sponsors .banneritem:hover{transform:translateY(-3px);box-shadow:0 16px 36px rgba(16,41,74,.12)}
.tv-sponsors .banneritem a{display:block;width:100%}
.tv-sponsors .banneritem img{display:block;width:100%;max-width:240px;height:auto;max-height:80px;object-fit:contain;margin:0 auto;filter:grayscale(1);opacity:.75;transition:filter .2s,opacity .2s}
.tv-sponsors .banneritem:hover img{filter:none;opacity:1}
.tv-sponsors .clr{display:none}
.tv-sponsors--home{padding:3rem 0 1.5rem}
.tv-sponsors--home .bannergroup{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.tv-sponsors--home .banneritem{min-height:100px}
.tv-sponsors--home .banneritem img{filter:grayscale(1);opacity:.7}
/* ===== Ende v3.20 ===== */

/* ===== v3.21 Sponsoren-Logos mobil: zwei Spalten ===== */
@media (max-width:640px){.tv-sponsors .bannergroup,.tv-sponsors--home .bannergroup{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.tv-sponsors .banneritem{min-height:84px;padding:12px 14px}.tv-sponsors .banneritem img{max-height:44px}}
/* ===== Ende v3.21 ===== */

/* ===== v3.22 Sponsoring: Leistungs-Karten (.tv-benefits) und Reichweite (.tv-reach) ===== */
.tv-benefits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:1.6rem 0 1.2rem}
.tv-benefit{background:#fff;border-radius:18px;padding:1.5rem 1.5rem 1.4rem;box-shadow:0 10px 28px rgba(16,41,74,.06);border-top:4px solid var(--tv-accent)}
.tv-benefit__icon{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:12px;background:var(--tv-bg);color:var(--tv-navy);font-size:1.15rem;margin-bottom:.8rem}
.tv-benefit h3{font-family:var(--tv-font-display);font-weight:600;font-size:1.2rem;color:var(--tv-navy);margin:0 0 .4rem}
.tv-benefit p{margin:0;font-size:.98rem}
.tv-reach{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:1.6rem 0 .4rem}
.tv-reach__item{position:relative;background:var(--tv-navy);color:#fff;border-radius:18px;padding:1.5rem 1.6rem 1.4rem;overflow:hidden}
.tv-reach__item::before{content:'';position:absolute;inset:auto -30px -30px auto;width:120px;height:120px;border-radius:50%;background:rgba(217,164,65,.14)}
.tv-reach__item h3{font-family:var(--tv-font-display);font-weight:600;font-size:1.2rem;color:var(--tv-accent);margin:0 0 .4rem}
.tv-reach__item p{margin:0;font-size:.98rem;color:rgba(255,255,255,.88)}
.tv-page--sponsoring .tv-steps{margin-top:1.4rem}
@media (max-width:991px){.tv-benefits{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.tv-benefits,.tv-reach{grid-template-columns:1fr;gap:12px}.tv-benefit,.tv-reach__item{padding:1.2rem 1.2rem 1.1rem}}
/* ===== Ende v3.22 ===== */

/* ===== v3.23 Sponsoren-Modul Startseite: wie die übrigen Startseiten-Abschnitte (Kopf links, Logos, Mehr-Link) ===== */
.tv-sponsors .bannerheader,.tv-sponsors .bannerfooter{grid-column:1/-1}
.tv-sponsors--home{padding:0;margin:0 0 3.5rem}
.tv-sponsors--home .bannergroup{gap:14px}
.tv-sponsors--home .bannerheader .tv-section__head{margin-bottom:.2rem}
.tv-sponsors--home .bannerfooter{margin-top:.2rem}
.tv-sponsors--home .bannerfooter .tv-section__more{margin:0}
/* ===== Ende v3.23 ===== */
