/* Groove-Entwurf: großzügige Typografie und vorhandene Elysium-Wellen. */
.concert-detail { background:#fafafa; color:#5a5a5a; }
.concert-detail .container { max-width:1280px; }
.concert-detail h1,.concert-detail h2 { color:#005567; font-weight:600; text-wrap:balance; }
.concert-detail h2 { font-size:clamp(2.15rem,3.6vw,3rem); line-height:1.13; margin:0 0 26px; }
.concert-detail p { font-size:18px; line-height:1.75; max-width:none; }
.concert-detail .concert-detail__kicker { color:#936218; font-size:14px; font-weight:500; text-transform:uppercase; letter-spacing:.12em; line-height:1.5; margin:0 0 18px; }
.concert-detail__hero { background:#f1ebeb; position:relative; padding:24px 0 96px; }
.concert-detail__hero-grid { display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr); gap:56px; align-items:center; }
.concert-detail__hero h1 { font-size:clamp(4.5rem,7vw,6.5rem); line-height:1; margin:0 0 22px; }
.concert-detail--paris .concert-detail__hero h1 { font-size:clamp(3.5rem,5.8vw,5.5rem); }
.concert-detail--long-title .concert-detail__hero h1 { font-size:clamp(3rem,5.8vw,5.5rem); overflow-wrap:break-word; hyphens:auto; }
.concert-detail__hero-copy { min-width:0; }
.concert-detail__hero-grid--text { grid-template-columns:1fr; max-width:850px; margin-inline:auto; text-align:center; }
.concert-detail__status { color:#005567; font-weight:600; }
.concert-detail .concert-detail__lead { font-size:clamp(1.35rem,2.1vw,1.75rem); line-height:1.5; color:#365159; margin:0 0 28px; text-wrap:pretty; }
.concert-detail__when { margin-bottom:28px; }
.concert-detail__when p { margin:0 0 4px; }
.concert-detail__when p:first-child { font-weight:600; color:#005567; }
.concert-detail figure { margin:0; min-width:0; }
.concert-detail__hero-photo figcaption { margin-top:12px; font-size:14px; line-height:1.5; }
.concert-detail__hero-photo img { display:block; width:100%; height:auto; border-radius:22px; }
.concert-detail .concert-detail__button { display:inline-flex; align-items:center; justify-content:center; gap:20px; padding:18px 28px; border-radius:40px; background:#005567; color:#fafafa; font-size:16px; line-height:1.45; font-weight:600; text-transform:uppercase; letter-spacing:.04em; text-decoration:none; border:2px solid #005567; }
.concert-detail .concert-detail__button:hover { background:#003e4b; border-color:#003e4b; }
.concert-detail a:focus-visible,.concert-detail summary:focus-visible { outline:3px solid #9c681d; outline-offset:5px; }
.concert-detail__section { padding:60px 0 108px; position:relative; }
.concert-detail__section--rose { background:#f1ebeb; }
body.single-konzert .prefooter--wave-only { background-color:#fafafa; }
.concert-detail__wave { position:absolute; bottom:-1px; left:0; width:100%; height:clamp(44px,5.6vw,80px); line-height:0; pointer-events:none; }
.concert-detail__wave svg { display:block; width:100%; height:100%; }
.concert-detail__intro { display:grid; grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr); gap:72px; align-items:start; }
.concert-detail__copy p { margin:0 0 22px; }
.concert-detail__copy p:last-child { margin-bottom:0; }
.concert-detail__program { border-top:1px solid #d4c8c3; border-bottom:1px solid #d4c8c3; margin-top:48px; }
.concert-detail__program > summary { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:28px 0; cursor:pointer; list-style:none; }
.concert-detail summary::-webkit-details-marker { display:none; }
.concert-detail__program summary .concert-detail__kicker { display:block; margin:0 0 8px; }
.concert-detail__program-title { font-family:var(--font-family-heading); font-size:32px; color:#005567; font-weight:600; line-height:1.2; }
.concert-detail__plus { font-size:32px; color:#005567; }
.concert-detail details[open] > summary .concert-detail__plus,.concert-detail__questions details[open] summary > span { transform:rotate(45deg); }
.concert-detail__works { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 64px; padding-bottom:16px; }
.concert-detail__works p { margin:0; padding:18px 0; border-top:1px solid #e4dad6; font-size:18px; line-height:1.6; }
.concert-detail__works strong { color:#005567; font-weight:600; }
.concert-detail__works > :is(h3,h4,h5,h6) { grid-column:1/-1; margin:24px 0 8px; font-size:26px; line-height:1.3; color:#936218; }
.concert-detail__works a { color:#005567; text-underline-offset:4px; }
.concert-detail .concert-detail__program-note { font-size:16px; margin:0 0 28px; }
.concert-detail__story { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:72px; align-items:center; }
.concert-detail__story-photo img { display:block; width:100%; height:auto; border-radius:20px; }
.concert-detail__story-photo figcaption { font-size:14px; line-height:1.5; margin-top:12px; }
.concert-detail__story--video { grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); }
#groove-einblick { scroll-margin-top:34px; }
.concert-detail__video-player { position:relative; aspect-ratio:16/9; overflow:hidden; border-radius:20px; background:#003e4b; }
.concert-detail__video-trigger { display:block; position:relative; width:100%; height:100%; color:#fafafa; }
.concert-detail__video-trigger img { display:block; width:100%; height:100%; object-fit:cover; }
.concert-detail__video-trigger::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 35%,rgba(0,25,31,.7)); pointer-events:none; }
.concert-detail__video-play { position:absolute; z-index:1; top:50%; left:50%; transform:translate(-50%,-50%); width:72px; height:72px; border-radius:50%; display:grid; place-items:center; background:#fafafa; color:#005567; box-shadow:0 4px 28px #001c2940; }
.concert-detail__video-trigger:hover .concert-detail__video-play { background:#d5b887; }
.concert-detail__video-trigger:focus-visible { outline:3px solid #d5b887!important; outline-offset:-5px!important; }
.concert-detail__video-label { position:absolute; z-index:1; bottom:22px; left:24px; color:#fafafa; font-size:16px; font-weight:600; }
.concert-detail__video-player iframe { display:block; position:absolute; inset:0; width:100%; height:100%; border:0; }
.concert-detail__story-video figcaption { margin-top:12px; font-size:14px; line-height:1.6; }
.concert-detail__story-video figcaption span { display:block; }
.concert-detail__story-video figcaption a { color:inherit; text-underline-offset:3px; }
.concert-detail__mobile-ticket-cta { display:none; }
.concert-detail__ensemble { margin-top:60px; }
.concert-detail__ensemble--first { margin-top:0; }
.concert-detail .concert-detail__media { max-width:820px; text-align:center; }
.concert-detail__media figcaption { text-align:left; }
.concert-detail__original-content > p:empty { display:none; }
.concert-detail__biography { display:grid; grid-template-columns:240px minmax(0,1fr); gap:36px; margin:24px 0 44px; }
.concert-detail__biography > div { min-width:0; overflow-wrap:break-word; hyphens:auto; }
.concert-detail__biography > div:only-child { grid-column:1/-1; }
.concert-detail__biography img { width:100%; height:auto; border-radius:18px; }
.concert-detail__biography h3 { margin:0 0 18px; font-size:30px; line-height:1.25; color:#005567; }
.concert-detail__biography h3 a { color:inherit; text-underline-offset:4px; }
.concert-detail__faq-answer { margin-bottom:24px; font-size:18px; line-height:1.75; }
.concert-detail__ensemble h2 { font-size:32px; text-align:center; margin-bottom:28px; }
.concert-detail__musicians { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 32px; }
.concert-detail__musicians > :is(h3,h4,h5,h6) { grid-column:1/-1; color:#005567; font-size:26px; line-height:1.35; margin:20px 0; }
.concert-detail__musicians p { display:flex; flex-direction:column; margin:0; padding:22px 0; border-top:1px solid #d4c8c3; }
.concert-detail__musicians strong { font-size:14px; color:#936218; text-transform:uppercase; letter-spacing:.1em; font-weight:500; margin-bottom:6px; }
.concert-detail__musicians a { color:#005567; text-underline-offset:4px; }
.concert-detail__visit { background:#fafafa; scroll-margin-top:34px; }
.concert-detail__evening-heading { text-align:center; margin-bottom:46px; }
.concert-detail__evening-heading h2 { margin-bottom:0; }
.concert-detail__evening-stages { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 44px; list-style:none; padding:0; margin:0; }
.concert-detail__evening-stages li { display:grid; grid-template-rows:subgrid; grid-row:span 3; position:relative; border-top:1px solid #cfb185; padding:26px 0 0; margin:0; }
.concert-detail__evening-stages li::before { content:""; position:absolute; top:-5px; left:0; width:9px; height:9px; border-radius:50%; background:#936218; }
.concert-detail .concert-detail__stage-time { font-size:14px; font-weight:500; line-height:1.5; letter-spacing:.08em; text-transform:uppercase; color:#936218; margin:0 0 16px; }
.concert-detail__visit h3 { font-family:var(--font-family-heading); font-size:30px; font-weight:600; line-height:1.2; color:#005567; margin:0 0 18px; }
.concert-detail__evening-stages li > p:last-child { margin:0; }
.concert-detail .concert-detail__evening-note { font-size:16px; line-height:1.6; text-align:center; margin:30px 0 44px; }
.concert-detail__visit-grid { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:72px; align-items:start; }
.concert-detail__visit-grid > div > p { margin:0 0 20px; }
.concert-detail__text-link { color:#005567; text-decoration:underline; text-underline-offset:5px; font-size:18px; line-height:1.65; }
.concert-detail__questions details { border-top:1px solid #d4c8c3; }
.concert-detail__questions details:last-child { border-bottom:1px solid #d4c8c3; }
.concert-detail__questions summary { list-style:none; display:flex; gap:24px; justify-content:space-between; cursor:pointer; padding:21px 0; font-size:18px; line-height:1.6; font-weight:500; color:#005567; }
.concert-detail__questions summary > span { font-size:24px; flex-shrink:0; }
.concert-detail__questions p { margin:0 0 24px; }
.concert-detail__booking { position:relative; background:#f1ebeb; padding:44px 0 108px; scroll-margin-top:135px; }
.concert-detail__booking-inner { text-align:center; }
.concert-detail__booking h2 { font-size:clamp(3rem,4.5vw,4rem); margin-bottom:18px; }
.concert-detail .concert-detail__booking-date { margin:0 auto 30px; }
.concert-detail__booking .concert-detail__text-link { display:inline-block; }
@media(max-width:1099px) { .concert-detail__hero-grid { gap:32px; } .concert-detail__intro,.concert-detail__story,.concert-detail__visit-grid { gap:40px; } }
@media(max-width:799px) {
 .concert-detail__evening-heading { margin-bottom:32px; }
 .concert-detail__evening-stages { grid-template-columns:1fr; gap:0; }
 .concert-detail__evening-stages li { display:block; grid-row:auto; border-top:0; border-left:1px solid #cfb185; padding:0 0 30px 26px; }
 .concert-detail__evening-stages li:last-child { padding-bottom:0; }
 .concert-detail__evening-stages li::before { top:6px; left:-5px; }
 .concert-detail .concert-detail__stage-time { margin-bottom:10px; }
 .concert-detail__visit h3 { margin-bottom:12px; }
 .concert-detail .concert-detail__evening-note { text-align:left; margin:26px 0 36px; }
 .concert-detail__hero { padding-bottom:80px; }
 .concert-detail__hero-grid,.concert-detail__intro,.concert-detail__story,.concert-detail__visit-grid { grid-template-columns:1fr; gap:30px; }
 .concert-detail__hero-copy { text-align:center; }
 .concert-detail__hero h1 { font-size:4.8rem; }
 .concert-detail .concert-detail__lead { max-width:28ch; margin-inline:auto; }
 .concert-detail__hero-photo { max-width:640px; margin-inline:auto!important; }
 .concert-detail__section { padding:36px 0 88px; }
 .concert-detail__intro h2 { margin-bottom:0; }
 .concert-detail__story-photo { max-width:560px; }
 .concert-detail__story { align-items:start; }
 .concert-detail__story--video > .concert-detail__copy { grid-row:1; }
 .concert-detail__video-play { width:60px; height:60px; }
 .concert-detail__video-label { bottom:16px; left:18px; }
 .concert-detail__mobile-ticket-cta { display:block; margin-top:30px; }
 .concert-detail__mobile-ticket-cta .concert-detail__button { width:100%; }
 .concert-detail__ensemble { margin-top:40px; }
 .concert-detail__ensemble--first { margin-top:0; }
 .concert-detail__mobile-ticket-cta + .concert-detail__ensemble--first { margin-top:40px; }
 .concert-detail__biography { grid-template-columns:minmax(0,1fr); gap:24px; }
 .concert-detail__biography figure { max-width:180px; }
 .concert-detail__musicians { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 24px; }
 .concert-detail__booking { scroll-margin-top:110px; }
}
@media(max-width:499px) {
 .concert-detail--shared:not(.concert-detail--long-title) .concert-detail__hero h1 { font-size:clamp(3.5rem,18vw,4.8rem); }
 .concert-detail h2 { font-size:34px; }
 .concert-detail .concert-detail__lead { font-size:22px; }
 .concert-detail__when p { font-size:16px; }
 .concert-detail .concert-detail__button { padding:16px 22px; max-width:100%; }
 .concert-detail__program { margin-top:30px; }
 .concert-detail__program-title { font-size:28px; }
 .concert-detail__works { grid-template-columns:1fr; }
 .concert-detail__musicians { grid-template-columns:1fr; }
 .concert-detail__musicians p { padding:15px 0; }
 .concert-detail__booking h2 { font-size:48px; }
}

/* Anchor margins complement root scroll padding and any admin-bar margin. Reserve loading
   space so an early ticket click is not clamped at the temporary page bottom. */
.concert-detail__widget { scroll-margin-top:var(--concert-anchor-margin, calc(var(--concert-anchor-offset, 122px) - 96px)); min-height:620px; max-width:960px; margin:36px auto; padding:28px; text-align:left; background:#fafafa; border:1px solid #ded3cc; border-radius:20px; }
.concert-detail__widget:has(.pretix-widget-seating-link) { min-height:0; }
.concert-detail__widget pretix-widget { display:block; }
.concert-detail__widget .pretix-widget { font-family:var(--font-family-body); border:0; padding:0; background:transparent; }
@media(max-width:599px) { .concert-detail__widget { padding:20px 14px; margin-top:28px; } }
@layer templates {
 .concert-detail__widget .pretix-widget-item-title { font-size:18px!important; line-height:1.5!important; }
 .concert-detail__widget .pretix-widget-item-description,
 .concert-detail__widget .pretix-widget-item-description p,
 .concert-detail__widget .pretix-widget-voucher-description,
 .concert-detail__widget .pretix-widget-voucher-description p,
 .concert-detail__widget .pretix-widget-voucher-text,
 .concert-detail__widget .pretix-widget-voucher-text p { font-size:14px!important; line-height:1.5!important; }
 .concert-detail__widget .pretix-widget-item-description p,
 .concert-detail__widget .pretix-widget-voucher-description p,
 .concert-detail__widget .pretix-widget-voucher-text p { margin-block:0 6px!important; }
 .concert-detail__widget .pretix-widget-item-description p:empty,
 .concert-detail__widget .pretix-widget-item-description p:has(>em:empty),
 .concert-detail__widget .pretix-widget-voucher-description p:empty,
 .concert-detail__widget .pretix-widget-voucher-description p:has(>em:empty),
 .concert-detail__widget .pretix-widget-voucher-text p:empty,
 .concert-detail__widget .pretix-widget-voucher-text p:has(>em:empty) { display:none; }
 .concert-detail__widget .pretix-widget-item-count-dec,
 .concert-detail__widget .pretix-widget-item-count-inc { min-width:44px!important; min-height:44px!important; }
 .concert-detail__widget .pretix-widget-item-count-multiple { height:44px!important; font-size:16px!important; }
 .concert-detail__widget .pretix-widget button { min-height:44px!important; }
}

.concert-detail .concert-detail__fee-note { font-size:14px; line-height:1.5; margin:0 15px 14px; color:#5a5a5a; }



/* Keep Pretix validation messages readable and compact, including on phones.
   Booking iframe and its own close behaviour remain under Pretix control. */
.single-konzert .pretix-widget-alert-holder[open] {
    position:fixed!important; inset:50% auto auto 50%!important;
    transform:translate(-50%,-50%)!important; margin:0!important;
    width:min(440px,calc(100vw - 32px))!important; height:auto!important;
    max-height:calc(100dvh - 48px)!important; padding:0!important;
    border:0!important; border-radius:20px; overflow:auto;
    background:#fafafa; color:#365159; box-shadow:0 16px 60px rgb(0 45 55 / .2);
    font-family:var(--font-family-body);
}
.single-konzert .pretix-widget-alert-holder .pretix-widget-alert-box {
    position:static!important; width:100%!important; height:auto!important;
    min-height:0!important; margin:0!important; padding:32px 24px!important;
    background:#fafafa!important; color:#365159!important; text-align:center;
    font-size:18px!important; line-height:1.6!important;
}
.single-konzert .pretix-widget-alert-box p { margin:0!important; }
.single-konzert .pretix-widget-alert-box p + p { margin-top:22px!important; }
.single-konzert .pretix-widget-alert-box button {
    min-height:44px; min-width:120px; padding:10px 24px!important;
    border:2px solid #005567; border-radius:28px; background:#005567; color:#fafafa;
    font-family:inherit; font-size:16px; line-height:1.4; cursor:pointer;
}
.single-konzert .pretix-widget-alert-box button:focus-visible {
    outline:3px solid #936218; outline-offset:4px;
}
.single-konzert .pretix-widget-alert-holder .pretix-widget-alert-icon { display:none; }

/* Shared concert experience: heading and video/photo before the full program. */
.concert-detail__video-intro { padding-bottom:36px; scroll-margin-top:34px; }
.concert-detail__video-intro-grid { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); grid-template-areas:"video heading" "video copy"; gap:20px 72px; align-items:start; }
.concert-detail__video-intro-heading { grid-area:heading; }
.concert-detail__video-intro-heading h2 { margin-bottom:0; }
.concert-detail__video-intro-grid > .concert-detail__intro-visual { grid-area:video; align-self:center; }
.concert-detail__video-intro-copy { grid-area:copy; }
@media(max-width:1099px) { .concert-detail__video-intro-grid { column-gap:40px; } }
@media(max-width:799px) {
 .concert-detail__video-intro-grid { grid-template-columns:minmax(0,1fr); grid-template-areas:"heading" "video" "copy"; gap:24px; }
 .concert-detail__video-intro-copy .concert-detail__button { width:100%; }
}

/* Program and performers in two clearly grouped panels. */
.concert-program__heading { max-width:840px; margin:0 auto 40px; text-align:center; }
.concert-program__heading h2 { margin-bottom:20px; }
.concert-program__description { max-width:760px; margin:0 auto; text-align:left; }
.concert-program__description p { margin:0 0 18px; line-height:1.75; }
.concert-program__description p:last-child { margin-bottom:0; }
.concert-program__panels { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; align-items:start; }
.concert-program__panel { padding:32px; border:1px solid #e4dad6; border-radius:22px; background:#fafafa; min-width:0; }
.concert-detail .concert-program__panel > h3 { margin:0 0 28px; color:#005567; font-family:var(--font-family-heading); font-size:30px; line-height:1.2; font-weight:600; }
.concert-program__chapters,.concert-program__artists { list-style:none; margin:0; padding:0; }
.concert-program__chapters li { display:flex; gap:20px; align-items:start; padding:0 0 25px; }
.concert-program__chapters li:last-child { padding-bottom:0; }
.concert-program__number { flex:0 0 28px; color:#936218; font-size:14px; letter-spacing:.08em; line-height:30px; }
.concert-detail .concert-program__chapters h4 { margin:0 0 5px; color:#005567; font-family:var(--font-family-body); font-size:20px; font-weight:600; line-height:1.5; }
.concert-detail .concert-program__chapters p { margin:0; font-size:16px; line-height:1.5; }
.concert-program__artists { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.concert-program__artists img { width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; object-position:center 20%; border-radius:14px; margin-bottom:14px; display:block; }
.concert-detail .concert-program__instrument { font-size:12px; letter-spacing:.07em; text-transform:uppercase; line-height:1.4; margin:0 0 5px; color:#936218; }
.concert-program__artists a,.concert-program__artists li > div > span { color:#005567; font-size:17px; line-height:1.5; font-weight:500; text-decoration-thickness:1px; text-underline-offset:4px; }
.concert-program__panel .concert-detail__program { margin-top:28px; border-bottom:0; }
.concert-program__panel .concert-detail__program > summary { padding:20px 0 0; gap:12px; }
.concert-program__panel .concert-detail__program[open] > summary { padding-bottom:24px; }
.concert-program__panel .concert-detail__program-title { font-family:var(--font-family-body); font-size:17px; font-weight:600; line-height:1.5; }
.concert-program__panel .concert-detail__plus { font-size:24px; }
.concert-program__panel .concert-detail__works { grid-template-columns:minmax(0,1fr); padding-bottom:0; }
.concert-program__panel .concert-detail__works p { font-size:16px; }
.concert-program__panel .concert-detail__works > :is(h3,h4,h5,h6) { font-size:23px; }
.concert-program__panel .concert-detail__biography { display:block; margin:0 0 28px; }
.concert-program__panel .concert-detail__biography:last-child { margin-bottom:0; }
.concert-program__panel .concert-detail__biography figure { display:none; }
.concert-program__panel .concert-detail__biography h3 { font-size:25px; }
.concert-program__panel .concert-detail__biography p { font-size:16px; line-height:1.7; }
.concert-detail--experience .concert-detail__evening-note { font-weight:700; }
@media(max-width:1099px) {
 .concert-program__panel { padding:26px; }
 .concert-program__artists { grid-template-columns:1fr; gap:18px; }
 .concert-program__artists li { display:grid; grid-template-columns:64px minmax(0,1fr); align-items:center; gap:16px; }
 .concert-program__artists img { margin:0; }
}
@media(max-width:799px) {
 .concert-program__heading { margin-bottom:28px; }
 .concert-program__panels { grid-template-columns:minmax(0,1fr); gap:20px; }
 .concert-program__panel { padding:24px; border-radius:18px; }
 .concert-detail .concert-program__panel > h3 { font-size:28px; margin-bottom:24px; }
}
@media(max-width:379px) {
 .concert-program__panel { padding:20px; }
 .concert-program__chapters li { gap:12px; }
 .concert-detail .concert-program__chapters h4 { font-size:18px; }
 .concert-program__panel .concert-detail__program-title { font-size:16px; }
}

@media(min-width:800px) {
 .concert-detail .concert-detail__video-intro-copy .concert-detail__button { padding:0; border:0; border-radius:0; background:transparent; color:#005567; font-size:18px; font-weight:500; text-transform:none; letter-spacing:0; text-decoration:underline; text-underline-offset:5px; gap:10px; }
 .concert-detail .concert-detail__video-intro-copy .concert-detail__button:hover { color:#003e4b; background:transparent; }
}

.concert-program__panels:not(:has(details[open])) { align-items:stretch; }
.concert-program__panel { display:flex; flex-direction:column; }
.concert-program__panel > .concert-detail__program { margin-top:auto; padding-top:28px; border-top:0; }
.concert-program__panel > .concert-detail__program > summary { border-top:1px solid #d4c8c3; }


/* Shared experience keywords, arrival card and FAQ group. */
.concert-detail--experience .concert-detail__hero-copy > .concert-detail__kicker { text-wrap:balance; }
.concert-detail--experience .concert-detail__evening-keywords {
 display:flex; align-items:center; justify-content:center; flex-wrap:wrap;
 gap:12px 18px; font-weight:700; letter-spacing:.06em; margin-bottom:24px;
}
.concert-detail--experience .concert-detail__enjoy-badge {
 display:inline-block; padding:5px 14px; background:var(--color-brand-accent);
 color:#003b49; border-radius:4px; transform:rotate(-3deg);
}
.concert-detail--experience .concert-detail__evening-note { max-width:1040px; margin:32px auto 0; }
.concert-detail--experience .concert-detail__visit-grid { margin-top:88px; gap:48px; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); }
.concert-detail--experience .concert-detail__venue-card { padding:32px; background:#f1ebeb; border-radius:20px; }
.concert-detail--experience .concert-detail__venue-name { display:block; margin-top:10px; color:#005567; font-weight:700; text-wrap:balance; }
.concert-detail--experience .concert-detail__faq-panel { min-width:0; }
.concert-detail--experience .concert-detail__faq-panel > h3 { margin-bottom:24px; }
.concert-detail--experience .concert-detail__questions { border:1px solid #e4dad6; border-radius:18px; background:#fff; }
.concert-detail--experience .concert-detail__questions details { border-top:1px solid #e4dad6; }
.concert-detail--experience .concert-detail__questions details:first-child { border-top:0; border-radius:17px 17px 0 0; }
.concert-detail--experience .concert-detail__questions details:last-child { border-bottom:0; border-radius:0 0 17px 17px; }
.concert-detail--experience .concert-detail__questions details[open] { background:#f6f1ef; }
.concert-detail--experience .concert-detail__questions summary { padding:22px 24px; gap:18px; font-size:17px; align-items:center; }
.concert-detail--experience .concert-detail__questions summary > span { display:grid; place-items:center; width:28px; height:28px; border-radius:50%; background:#f1ebeb; font-size:22px; line-height:1; }
.concert-detail--experience .concert-detail__questions summary:hover { color:#003b49; }
.concert-detail--experience .concert-detail__questions summary:focus-visible { outline-offset:-5px; }
.concert-detail--experience .concert-detail__faq-answer { padding:0 24px 24px; margin:0; font-size:17px; }
.concert-detail--experience .concert-detail__faq-answer p { font-size:17px; }
.concert-detail--experience .concert-detail__faq-answer > :last-child { margin-bottom:0; }
@media(max-width:1099px) {
 .concert-detail--experience .concert-detail__visit-grid { gap:32px; }
 .concert-detail--experience .concert-detail__venue-card { padding:26px; }
}
@media(max-width:799px) {
 .concert-detail--experience .concert-detail__visit-grid { margin-top:56px; grid-template-columns:minmax(0,1fr); gap:32px; }
 .concert-detail--experience .concert-detail__evening-note { margin:26px 0 0; }
 .concert-detail--experience .concert-detail__venue-card { padding:24px; border-radius:18px; }
 .concert-detail--experience .concert-detail__faq-panel > h3 { margin-bottom:20px; }
 .concert-detail--experience .concert-detail__questions summary { padding:20px 18px; gap:14px; }
 .concert-detail--experience .concert-detail__faq-answer { padding:0 18px 20px; }
}
@media(max-width:599px) {
 .concert-detail--experience .concert-detail__evening-keywords { font-size:12px; gap:9px 11px; letter-spacing:.035em; }
 .concert-detail--experience .concert-detail__enjoy-badge { padding:4px 10px; }
}


/* Direct ticket entry after the evening outline. */
.concert-detail--experience .concert-detail__evening-ticket-cta { margin-top:32px; text-align:center; }
.concert-detail--experience .concert-detail__evening-ticket-cta + .concert-detail__visit-grid { margin-top:72px; }
@media(max-width:799px) {
 .concert-detail--experience .concert-detail__evening-ticket-cta { margin-top:28px; }
 .concert-detail--experience .concert-detail__evening-ticket-cta .concert-detail__button { width:100%; }
 .concert-detail--experience .concert-detail__evening-ticket-cta + .concert-detail__visit-grid { margin-top:56px; }
}

.concert-detail__video-intro-grid--text { grid-template-columns:minmax(0,1fr); grid-template-areas:"heading" "copy"; max-width:820px!important; }
.concert-detail--experience .concert-detail__video-intro-grid > * { min-width:0; }

/* Variable concert lineups: individuals, ensemble portraits and pending cast. */
.concert-detail .concert-program__preview-label { margin:-12px 0 24px; font-size:13px; color:#936218; text-transform:uppercase; letter-spacing:.06em; }
.concert-detail .concert-program__ensemble-name { margin:-10px 0 24px; font-weight:600; color:#005567; }
.concert-detail .concert-program__ensemble-intro { margin:24px 0 0; font-size:16px; line-height:1.7; }
.concert-program__artists--single { grid-template-columns:1fr; }
.concert-program__artists--ensemble li { display:block; }
.concert-program__artists--ensemble img { width:100%; height:auto; max-height:280px; aspect-ratio:auto; object-fit:contain; object-position:center; }
.concert-program__roster { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 24px; margin-top:24px; }
.concert-program__roster > :is(h3,h4,h5,h6) { grid-column:1/-1; font-size:22px; margin:0; color:#005567; }
.concert-detail .concert-program__roster p { display:flex; flex-direction:column; margin:0; font-size:16px; line-height:1.5; }
.concert-program__roster strong { margin-bottom:3px; font-size:12px; letter-spacing:.06em; text-transform:uppercase; font-weight:500; color:#936218; }
.concert-program__roster a { color:#005567; text-underline-offset:4px; }
.concert-program__artists li:not(:has(img)) > div { grid-column:1/-1; }
@media(min-width:1100px) {
 .concert-program__artists[data-artist-count="2"] { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .concert-program__artists:is([data-artist-count="4"],[data-artist-count="5"],[data-artist-count="6"]) { grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px 20px; }
 .concert-program__artists:is([data-artist-count="4"],[data-artist-count="5"],[data-artist-count="6"]) li { display:grid; grid-template-columns:64px minmax(0,1fr); align-items:center; gap:14px; }
 .concert-program__artists:is([data-artist-count="4"],[data-artist-count="5"],[data-artist-count="6"]) img { margin:0; }
 .concert-program__artists:is([data-artist-count="4"],[data-artist-count="5"],[data-artist-count="6"]) a { font-size:16px; }
}
@media(max-width:1099px) {
 .concert-program__artists--ensemble li { display:block; }
 .concert-program__artists--ensemble img { margin-bottom:16px; }
 .concert-program__roster { grid-template-columns:minmax(0,1fr); gap:14px; }
}
@media(max-width:799px) {
 .concert-program__roster { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
}
@media(max-width:379px) {
 .concert-program__roster { grid-template-columns:minmax(0,1fr); }
}

/* A pending cast has a compact notice rather than an empty full-height portrait card. */
.concert-program__panel--artists:not(:has(.concert-program__artists)) { align-self:start; }

/* Short programs show every work once; keep composer names clear and work links available. */
.concert-program__complete { counter-reset:concert-work; }
.concert-detail .concert-program__complete p { position:relative; counter-increment:concert-work; border:0; padding:0 0 25px 48px; line-height:1.65; }
.concert-detail .concert-program__complete p:last-child { padding-bottom:0; }
.concert-program__complete p::before { content:counter(concert-work, decimal-leading-zero); position:absolute; left:0; top:0; color:#936218; font-size:14px; letter-spacing:.08em; line-height:30px; }
.concert-program__complete strong { display:inline-block; margin-bottom:5px; color:#005567; font-size:20px; font-weight:600; line-height:1.5; }
.concert-program__complete a { color:#005567; text-underline-offset:4px; }
.concert-program__complete + .concert-detail__program-note { margin:24px 0 0; }
@media(max-width:479px) {
 .concert-program__complete strong { font-size:18px; }
 .concert-detail .concert-program__complete p { padding-left:40px; }
}

/* O3: compact guidance at the existing ticket target; no additional purchase CTA. */
.concert-detail__vip { padding:0 0 22px; margin:0 0 24px; border-bottom:1px solid #ded3cc; }
.concert-detail .concert-detail__vip h3 { font-family:var(--font-family-body); font-size:18px; line-height:1.4; font-weight:600; color:#005567; margin:0 0 8px; }
.concert-detail .concert-detail__vip p { font-size:16px; line-height:1.65; margin:0; max-width:78ch; }
.concert-detail .concert-detail__abo-help { font-size:16px; line-height:1.65; margin:24px 0 0; padding-top:18px; border-top:1px solid #ded3cc; max-width:none; }
.concert-detail .concert-detail__booking-facts + .concert-detail__abo-help { border-top:0; padding-top:0; margin-top:0; }
.concert-detail__abo-help a { color:#005567; text-decoration:underline; text-underline-offset:4px; }
@media(max-width:599px) {
 .concert-detail__vip { padding-bottom:18px; margin-bottom:20px; }
 .concert-detail .concert-detail__vip p { font-size:15px; line-height:1.6; }
 .concert-detail .concert-detail__abo-help { font-size:14px; }
}

/* Aurora pilot: concise help before opening Pretix's seating plan on a phone. */
.concert-seat-help { display:none; }
@media (max-width:767px) {
    .concert-seat-help { display:block; margin:0 0 24px; padding:0 16px; border:1px solid #ded3cc; border-radius:12px; background:#f5f0ed; color:#365159; }
    .concert-seat-help > summary { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:68px; padding:14px 0; cursor:pointer; list-style:none; font-family:var(--font-family-body); font-size:15px; line-height:1.45; }
    .concert-seat-help > summary::-webkit-details-marker { display:none; }
    .concert-seat-help > summary strong { display:block; color:#005567; font-size:16px; font-weight:700; }
    .concert-seat-help__preview { display:block; margin-top:4px; font-size:13px; line-height:1.5; }
    .concert-seat-help__toggle { flex:0 0 24px; text-align:center; color:#005567; font-size:26px; font-weight:500; }
    .concert-seat-help[open] .concert-seat-help__toggle { transform:rotate(45deg); }
    .concert-seat-help > summary:focus-visible { outline:3px solid #9c681d; outline-offset:4px; border-radius:4px; }
    .concert-seat-help ol { display:grid; gap:14px; margin:0; padding:4px 0 18px; list-style:none; counter-reset:seat-help-step; }
    .concert-seat-help li { display:grid; grid-template-columns:26px minmax(0,1fr); column-gap:10px; align-items:start; margin:0; padding:0; counter-increment:seat-help-step; font-size:14px; line-height:1.5; }
    .concert-seat-help li::before { content:counter(seat-help-step); grid-row:1 / 3; display:grid; place-items:center; width:26px; height:26px; border-radius:50%; background:#005567; color:#fafafa; font-size:13px; font-weight:700; }
    .concert-seat-help li strong { grid-column:2; color:#005567; font-size:15px; font-weight:700; }
    .concert-seat-help li > span { grid-column:2; margin-top:2px; }
}

/* Keep ticket access available without covering the shop, navigation or dialogs. */
.concert-ticket-nav { visibility:hidden; pointer-events:none; background:#005567; color:#fafafa; }
body.concert-ticket-access .concert-ticket-nav { visibility:visible; pointer-events:auto; }
.site-header--floating .concert-ticket-nav:hover { background:#003e4b; color:#fafafa; }
.concert-ticket-bar { display:none; }
.concert-detail__booking-facts { display:flex; flex-wrap:wrap; justify-content:center; gap:10px 24px; list-style:none; margin:0 0 24px; padding:0 0 20px; border-bottom:1px solid #ded3cc; color:#365159; font-size:15px; line-height:1.5; }
.concert-detail__booking-facts li { margin:0; }
.concert-detail .concert-detail__all-concerts { text-align:center; margin:48px 0 0; }
@media(max-width:1159px) {
 body.single-konzert { --concert-anchor-offset:106px; }
 .concert-ticket-bar { display:block; position:fixed; z-index:190; inset:auto 0 0; padding:10px 20px var(--concert-ticket-bottom-space, calc(10px + env(safe-area-inset-bottom, 0px))); background:#fafafaf5; border-top:1px solid #ded3cc; box-shadow:0 -4px 18px #00212a12; visibility:hidden; pointer-events:none; }
 /* Keep the existing bottom-left privacy control clear of the ticket button. */
 .concert-ticket-bar { padding-left:84px; }
 .concert-ticket-bar .btn { display:flex; align-items:center; justify-content:center; gap:16px; width:100%; max-width:540px; min-height:48px; margin:auto; border-radius:40px; background:#005567; color:#fafafa; font-size:15px; font-weight:600; text-decoration:none; }
 body.concert-ticket-access .concert-ticket-bar { visibility:visible; pointer-events:auto; }
 body.single-konzert:has(.concert-ticket-bar) .site-footer { padding-bottom:calc(100px + env(safe-area-inset-bottom, 0px)); }
 body:has(.site-nav.is-open, dialog[open], [aria-modal="true"], input:focus, textarea:focus, select:focus) .concert-ticket-bar { visibility:hidden; pointer-events:none; }
}
/* Once the fixed ticket access is ready, avoid duplicate mobile CTAs.
   Keep the entry button and the unenhanced/no-JavaScript fallback intact. */
@media(max-width:799px) {
 body.concert-ticket-ready .concert-detail__video-intro-copy > .concert-detail__button,
 body.concert-ticket-ready .concert-detail__evening-ticket-cta,
 body.concert-ticket-ready .concert-detail__mobile-ticket-cta { display:none; }
 body.concert-ticket-ready .concert-detail__video-intro-copy > p:last-of-type { margin-bottom:0; }
 .concert-ticket-bar { padding-top:26px; }
 body.single-konzert:has(.concert-ticket-bar) .site-footer { padding-bottom:calc(116px + env(safe-area-inset-bottom, 0px)); }
}
@media(max-width:599px) { body.single-konzert { --concert-anchor-offset:98px; } .concert-detail__booking-facts { gap:8px; flex-direction:column; align-items:center; } }
@media print { .concert-ticket-bar, .concert-ticket-nav { display:none!important; } }
