.pp-stadtfest{--sf-dark:#090909;--sf-light:#1c171b}
.pp-stadtfest>section{background:var(--sf-dark)}
.pp-stadtfest>section:nth-of-type(even){background:var(--sf-light)}
.pp-stadtfest .pp-cover-hero{background:radial-gradient(ellipse at 85% 25%,#301526,#090909 70%)}
.pp-stadtfest h1{font-size:clamp(30px,3.4vw,54px)!important;line-height:1.08;hyphens:manual;overflow-wrap:normal}
.pp-stadtfest h1>span,.pp-stadtfest h1>em{display:block!important}
.pp-stadtfest h1>em{font-size:.72em;color:#EE4EAF!important;margin-top:16px;line-height:1.2}
.pp-stadtfest .pp-cover-photo-frame{aspect-ratio:3/2!important}
.pp-stadtfest .pp-cover-photo-frame img{position:static!important;width:100%!important;height:100%!important;object-fit:contain!important;transform:none!important}
.pp-stadtfest .pp-section{padding-block:64px}
.pp-stadtfest h2{font-size:clamp(25px,2.8vw,38px);line-height:1.18;text-wrap:balance;margin:0 0 24px}
.pp-stadtfest h3{font-size:clamp(19px,1.9vw,24px);line-height:1.35;margin:24px 0 12px}
.pp-stadtfest p{line-height:1.75;text-wrap:pretty}
.pp-stadtfest .pp-heading{max-width:850px;margin:0 auto 32px;text-align:center!important}
.pp-stadtfest .pp-heading h2,.pp-stadtfest .pp-heading p{text-align:center!important}
.pp-stadtfest .sf-reading>.pp-wrap{max-width:900px}
.pp-stadtfest .sf-reading :is(h2,h3,p){text-align:left!important}
.pp-stadtfest .sf-reading .sf-prose{max-width:76ch}
.pp-stadtfest .sf-reading p{margin:0 0 18px}
.pp-stadtfest .sf-phases{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px}
.pp-stadtfest .sf-phases article{border-top:2px solid #EE4EAF;padding-top:22px;text-align:left;min-width:0}
.pp-stadtfest .sf-phases :is(h3,p){text-align:left!important}
.sf-phase-marker{font-size:14px;font-weight:700;color:#EE4EAF;letter-spacing:.15em}
.pp-stadtfest .sf-phases h3{margin-top:12px}
.sf-lineups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px;margin:28px 0}
.sf-lineups article{border-top:1px solid #ffffff35;padding:0 0 14px;min-width:0}
.sf-stage{border-collapse:collapse;width:100%;margin:22px 0 26px;font-size:16px}
.sf-stage th,.sf-stage td{border-bottom:1px solid #ffffff30;padding:15px 12px;text-align:left}
.sf-stage thead th{color:#EE4EAF}.sf-stage tbody th{font-weight:500}
.sf-tech{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:28px 0}
.sf-tech figure{margin:0;min-width:0}.sf-tech img{width:100%;height:auto;display:block;object-fit:contain;border-radius:10px}.sf-tech figcaption{font-size:15px;padding-top:10px;text-align:center}
.sf-chameleon{max-width:760px;margin:34px auto 0;text-align:left}
.pp-stadtfest .pp-faq{max-width:900px;margin-inline:auto}.pp-stadtfest .pp-faq h3{font-size:18px;margin:0;text-align:left!important}.pp-stadtfest .pp-faq p{text-align:left!important}
.pp-stadtfest .sf-related{text-align:center}.pp-stadtfest .sf-related .pp-complete-links{justify-content:center}
.pp-stadtfest .pp-closing{text-align:center}.pp-stadtfest .pp-closing p{max-width:72ch;margin-inline:auto}
.pp-stadtfest .pp-jumpnav .pp-wrap{flex-wrap:wrap;justify-content:center}
@media(max-width:900px){
 .pp-stadtfest .pp-cover-hero-grid{display:flex!important;flex-direction:column}
 .pp-stadtfest .pp-cover-intro{display:contents}
 .pp-stadtfest .pp-cover-intro>.pp-kicker{order:1}.pp-stadtfest .pp-cover-intro>h1{order:2}
 .pp-stadtfest .pp-cover-hero-portrait{order:3;width:100%;margin:12px 0 20px}
 .pp-stadtfest .pp-cover-intro>.pp-cover-lead{order:4}.pp-stadtfest .pp-cover-intro>.pp-hero-actions{order:5;width:100%}.pp-stadtfest .pp-cover-intro>.pp-promise{order:6}
 .pp-stadtfest .sf-phases{gap:26px}
}
@media(max-width:650px){
 .pp-stadtfest .pp-section{padding-block:40px}.pp-stadtfest h1{font-size:clamp(28px,7.7vw,38px)!important}
 .pp-stadtfest .sf-phases,.pp-stadtfest .sf-lineups,.pp-stadtfest .sf-tech{grid-template-columns:1fr}
 .pp-stadtfest .sf-phases{gap:26px}.pp-stadtfest h2{font-size:27px}
 .sf-stage{font-size:14px}.sf-stage th,.sf-stage td{padding:14px 8px}
 .pp-stadtfest .pp-display-heading{font-size:clamp(26px,7vw,38px)!important}
}

.pp-stadtfest .sf-acoustic{max-width:680px;margin:28px auto 0}.pp-stadtfest .sf-acoustic img{width:100%;height:100%;object-fit:cover}.pp-stadtfest .sf-acoustic .pp-video-copy h3,.pp-stadtfest .sf-acoustic .pp-video-copy p{text-align:center!important}

/* Town-festival art direction: stage light, quiet reading surfaces, clear text axes. */
.pp-stadtfest>section{position:relative;isolation:isolate;background-color:#0b090c;background-image:radial-gradient(ellipse at 0 0,rgba(152,45,115,.13),transparent 55%);border-top:1px solid rgba(255,255,255,.045)}
.pp-stadtfest>section:nth-of-type(even){background-color:#21131e;background-image:radial-gradient(ellipse at 100% 15%,rgba(213,61,156,.16),transparent 60%),linear-gradient(115deg,rgba(255,255,255,.025),transparent 45%)}
.pp-stadtfest .pp-cover-hero{background:radial-gradient(ellipse at 90% 20%,#55223f 0,transparent 60%),linear-gradient(125deg,#090909 30%,#25121f)}
.pp-stadtfest .pp-section{padding-block:80px}
.pp-stadtfest :is(#musikphasen,#akustikbeispiel,#besetzung,#videos,#repertoire,#anfrage){background-color:#180e17;background-image:radial-gradient(ellipse at 8% 10%,rgba(229,64,164,.22),transparent 48%),radial-gradient(ellipse at 95% 90%,rgba(117,71,150,.18),transparent 50%),linear-gradient(130deg,transparent 47%,rgba(245,115,195,.035) 48%,transparent 67%)}
.pp-stadtfest #akustikbeispiel{background-color:#281421}
.pp-stadtfest #akustikbeispiel>.pp-wrap,.pp-stadtfest #besetzung>.pp-wrap{max-width:1200px}
.pp-stadtfest :is(#akustikbeispiel,#besetzung)> .pp-wrap>h2{max-width:940px;margin-inline:auto;text-align:center!important}
.pp-stadtfest #akustikbeispiel>.pp-wrap>p,.pp-stadtfest #besetzung .sf-prose{max-width:78ch;margin-inline:auto;text-align:center!important}
.pp-stadtfest #besetzung .sf-prose p{text-align:center!important}
.pp-stadtfest #besetzung>.pp-wrap>p{max-width:78ch;margin-inline:auto;text-align:center!important}
.pp-stadtfest #besetzung .pp-complete-links{justify-content:center}
.pp-stadtfest .sf-acoustic{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;max-width:none;margin-top:36px}
.pp-stadtfest .sf-acoustic>*{min-width:0;box-shadow:0 18px 48px #0005}
.pp-stadtfest .sf-phases{gap:28px}
.pp-stadtfest .sf-phases article{padding:28px;border:1px solid #ffffff18;border-top:2px solid #e254ae;border-radius:4px 4px 18px 18px;background:linear-gradient(145deg,#ffffff07,#09090955)}
.pp-stadtfest .sf-phases article:last-child{background:linear-gradient(145deg,#a43c7c24,#09090966)}
.pp-stadtfest .sf-lineups{gap:20px}
.pp-stadtfest .sf-lineups article{padding:24px 28px;border:1px solid #ffffff1c;border-radius:14px;background:linear-gradient(135deg,#ffffff08,#09090966);box-shadow:0 10px 30px #0002}
.pp-stadtfest .sf-lineups h3{margin-top:0;color:#f38acb}
.pp-stadtfest .sf-lineups p{margin-bottom:0}
.pp-stadtfest .sf-reading:not(#akustikbeispiel):not(#besetzung)>.pp-wrap{max-width:900px}
.pp-stadtfest .sf-reading:not(#akustikbeispiel):not(#besetzung) h2:before{content:"";display:block;width:52px;height:3px;margin-bottom:22px;background:linear-gradient(90deg,#ee4eaf,#f8b8df);border-radius:3px}
.pp-stadtfest #wiltz{background:radial-gradient(ellipse at 10% 30%,#71335344,transparent 65%),#161015}
.pp-stadtfest #wiltz>.pp-wrap{border-left:2px solid #da5aad;padding-left:36px}
.pp-stadtfest #fragen{background:radial-gradient(ellipse at 100% 0,#53233d55,transparent 55%),#0d0b0e}
.pp-stadtfest .pp-faq details{background:#ffffff04;border-radius:10px;padding-inline:20px;margin-bottom:10px;border:1px solid #ffffff14}
.pp-stadtfest .pp-closing{background:radial-gradient(ellipse at 50% 100%,#83305e66,transparent 75%),#20111b;padding-block:85px}
@media(min-width:1600px){.pp-stadtfest .sf-acoustic{gap:36px}}
@media(max-width:650px){
 .pp-stadtfest .pp-section{padding-block:44px}
 .pp-stadtfest .sf-acoustic{grid-template-columns:1fr;gap:24px}
 .pp-stadtfest .sf-phases article,.pp-stadtfest .sf-lineups article{padding:22px}
 .pp-stadtfest #wiltz>.pp-wrap{padding-left:22px;border-left:0}
 .pp-stadtfest .pp-closing{padding-block:52px}
}
