/* Konzertübersicht und gemeinsame Karten für den Startseiten-Slider. */
.concert-overview .container { max-width:1280px; }
.concert-overview__hero { position:relative; padding:16px 0 68px; background:#f1ebeb; }
.concert-overview__hero .breadcrumb { padding:6px 0; margin-bottom:18px; }
.concert-overview__heading { text-align:center; }
.concert-overview__heading h1 { color:#005567; font-size:clamp(2.8rem,4.8vw,4.25rem); font-weight:600; line-height:1.1; margin:0 auto 20px; max-width:none; text-wrap:balance; }
.concert-overview__heading p { color:var(--color-text-secondary); font-size:var(--font-size-md); line-height:1.7; max-width:70ch; margin:0 auto; text-wrap:pretty; }
.concert-overview__heading .concert-overview__eyebrow { font-size:var(--font-size-sm); color:var(--color-brand-secondary); letter-spacing:.12em; text-transform:uppercase; margin:0 auto 14px; }
.concert-overview__wave { position:absolute; left:0; bottom:-1px; width:100%; height:clamp(44px,5.6vw,80px); line-height:0; pointer-events:none; }
.concert-overview__wave svg { display:block; width:100%; height:100%; }
.concert-overview__upcoming { position:relative; padding:28px 0 110px; background:#fafafa; }
.concert-overview__label { font-family:var(--font-family-body); font-size:var(--font-size-md); color:#005567; font-weight:500; margin:0 0 26px; }
.concert-overview__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px 24px; }
.concert-choice { min-width:0; border-radius:18px; background:#f1ebeb; }
.concert-choice__link { height:100%; display:flex; flex-direction:column; color:inherit; text-decoration:none; border-radius:18px; box-shadow:0 2px 10px rgba(0,50,61,.05); }
.concert-choice__link:hover { color:inherit; text-decoration:none; box-shadow:0 5px 20px rgba(0,50,61,.12); }
.concert-choice__link:focus-visible { outline:3px solid #9c681d; outline-offset:5px; }
.concert-choice__image { position:relative; overflow:hidden; border-radius:18px 18px 0 0; aspect-ratio:3/2; background:#e3dcda; }
.concert-choice__image img { width:100%; height:100%; object-fit:cover; object-position:center top; display:block; }
.concert-choice__status-row { min-height:20px; font-size:var(--font-size-sm); line-height:20px; margin-bottom:8px; }
.concert-choice__badge { color:#005567; font-size:var(--font-size-sm); font-weight:600; }
.concert-choice__body { display:flex; flex-direction:column; flex:1; padding:24px; }
.concert-choice__date { display:flex; flex-wrap:wrap; gap:4px 12px; align-items:baseline; color:#875911; font-size:var(--font-size-base); font-weight:500; line-height:1.5; margin-bottom:14px; }
.concert-choice__date > span { color:var(--color-text-secondary); font-weight:400; white-space:nowrap; }
.concert-choice h3 { font-size:2rem; line-height:1.15; font-weight:600; color:#005567; margin:0 0 16px; text-wrap:balance; }
.concert-choice__description { font-size:var(--font-size-md); line-height:1.65; color:var(--color-text-secondary); margin:0 0 22px; max-width:none; flex:1; text-wrap:pretty; }
.concert-choice__venue { display:flex; align-items:flex-start; gap:8px; color:var(--color-text-secondary); font-size:var(--font-size-base); line-height:1.5; margin:0 0 22px; max-width:none; }
.concert-choice__venue svg { flex-shrink:0; margin-top:3px; color:#005567; }
.concert-choice__action { display:flex; align-items:center; justify-content:space-between; gap:12px; border-top:1px solid #d9cfc9; padding-top:18px; font-size:var(--font-size-base); font-weight:600; color:#005567; }
.concert-choice__action > span { font-size:22px; line-height:1; }
.concert-choice__link:hover .concert-choice__action { text-decoration:underline; text-underline-offset:4px; }
.concert-overview__past { background:#f1ebeb; padding:36px 0 32px; }
.concert-overview__past h2 { text-align:center; font-size:clamp(2rem,3.2vw,2.75rem); color:#005567; line-height:1.15; margin:0 auto 32px; text-wrap:balance; }
.concert-history { max-width:900px; margin:0 auto; border-top:1px solid #cdbfba; }
.concert-history:last-child { border-bottom:1px solid #cdbfba; }
.concert-history summary { display:flex; justify-content:space-between; align-items:center; list-style:none; cursor:pointer; color:#005567; font-size:var(--font-size-md); font-weight:500; padding:22px 0; }
.concert-history summary::-webkit-details-marker { display:none; }
.concert-history summary > span { font-size:24px; font-weight:400; transition:transform .15s; }
.concert-history[open] summary > span { transform:rotate(45deg); }
.concert-history summary:focus-visible, .concert-history a:focus-visible { outline:3px solid #9c681d; outline-offset:4px; }
.concert-history ul { list-style:none; padding:0; margin:0 0 22px; }
.concert-history li { margin:0; border-top:1px solid #ddd3cf; }
.concert-history a { display:grid; grid-template-columns:180px minmax(0,1fr) 24px; align-items:center; gap:20px; padding:18px 0; color:#005567; text-decoration:none; }
.concert-history a:hover .concert-history__title { text-decoration:underline; text-underline-offset:4px; }
.concert-history time { font-size:var(--font-size-base); color:var(--color-text-secondary); }
.concert-history__title { font-family:var(--font-family-heading); font-size:1.7rem; line-height:1.2; }
.concert-history__arrow { font-size:22px; text-align:right; }
.concert-overview__empty { font-size:var(--font-size-md); text-align:center; max-width:55ch; margin:0 auto 28px; }
.home-section--concerts .container { max-width:1280px; }
.home-section--concerts .concert-choice { flex:0 0 var(--slide-width,100%); min-width:0; }
.home-section--concerts .konzerte-slider__viewport { min-height:0; }
@media(max-width:1099px) { .concert-overview__grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:699px) {
 .concert-overview__grid { grid-template-columns:1fr; gap:28px; }
 .concert-overview__hero { padding:20px 0 76px; }
 .concert-overview__hero .breadcrumb { margin-bottom:22px; }
 .concert-overview__heading h1 { font-size:2.7rem; }
 .concert-overview__upcoming { padding:20px 0 84px; }
 .concert-choice__body { padding:22px; }
 .concert-choice__status-row.is-empty { display:none; }
 .concert-overview__past { padding:24px 0 16px; }
 .concert-history a { grid-template-columns:minmax(0,1fr) 24px; gap:6px 16px; }
 .concert-history time { grid-column:1; }
 .concert-history__title { grid-column:1; }
 .concert-history__arrow { grid-column:2; grid-row:1/3; }
}
@media(prefers-reduced-motion:reduce) { .concert-history summary > span { transition:none; } }

/* O3: a quiet secondary offer below the upcoming concert selection. */
.concert-overview__section-heading { display:flex; justify-content:space-between; align-items:baseline; gap:14px 30px; margin-bottom:26px; }
.concert-overview__section-heading .concert-overview__label { margin:0; }
.concert-abo { scroll-margin-top:20px; margin-top:88px; padding-top:64px; border-top:1px solid #d9cfc9; }
.concert-abo__heading { text-align:center; max-width:720px; margin:0 auto 32px; }
.concert-abo .concert-abo__kicker { color:var(--color-brand-secondary); font-size:var(--type-label); font-weight:500; letter-spacing:.1em; text-transform:uppercase; line-height:1.5; margin:0 0 12px; }
.concert-abo h2 { font-size:var(--type-section); color:#005567; line-height:1.18; margin:0 0 20px; }
.concert-abo p { font-size:var(--type-body); line-height:1.7; max-width:none; }
.concert-abo__heading > p:last-child { margin:0; }
.concert-abo__options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; max-width:960px; margin:auto; }
.concert-abo__option { padding:30px 34px; border:1px solid #e2d8d3; border-radius:20px; background:#f1ebeb; }
.concert-abo__option h3 { font-size:var(--type-subheading); line-height:1.25; color:#005567; margin:0 0 16px; }
.concert-abo .concert-abo__benefit { display:inline-block; color:#754c0c; background:#ead9bc; border-radius:24px; padding:6px 14px; margin:0 0 18px; font-size:16px; font-weight:600; line-height:1.5; }
.concert-abo .concert-abo__basis { margin:0 0 14px; font-size:14px; line-height:1.6; color:var(--color-text-secondary); }
.concert-abo__option dl { margin:0; }
.concert-abo__option dl > div { display:flex; justify-content:space-between; align-items:baseline; gap:12px; padding:14px 0; border-top:1px solid #d9ceca; font-size:16px; line-height:1.5; }
.concert-abo__option dt { color:var(--color-text-secondary); font-weight:400; }
.concert-abo__option dd { color:#005567; margin:0; text-align:right; }
.concert-abo__prices { display:flex; justify-content:flex-end; align-items:baseline; flex-wrap:wrap; gap:4px 10px; white-space:nowrap; }
.concert-abo__prices s { color:var(--color-text-secondary); font-size:16px; font-weight:400; text-decoration-thickness:1px; }
.concert-abo__prices strong { font-size:22px; font-weight:600; }
.concert-abo__saving { display:block; font-size:14px; font-weight:500; line-height:1.5; margin-top:3px; }
.concert-abo .concert-abo__price-note { max-width:960px; margin:20px auto 36px; font-size:14px; line-height:1.65; }
.concert-abo__steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px; padding:0; margin:0 auto 34px; list-style:none; max-width:1080px; }
.concert-abo__steps li { display:flex; align-items:flex-start; gap:14px; margin:0; }
.concert-abo__steps li > span { width:30px; height:30px; display:grid; place-items:center; border:1px solid #b48a53; border-radius:50%; flex-shrink:0; font-size:14px; color:#875911; }
.concert-abo__steps h3 { font-family:var(--font-family-body); font-size:18px; font-weight:600; line-height:1.5; color:#005567; margin:0 0 8px; }
.concert-abo__steps p { font-size:16px; line-height:1.65; margin:0; }
.concert-abo__actions { display:flex; align-items:center; justify-content:center; gap:20px 32px; flex-wrap:wrap; }
.concert-abo__text-link { color:#005567; font-size:16px; line-height:1.5; text-decoration:underline; text-underline-offset:5px; }
.concert-abo .concert-abo__button { display:inline-flex; align-items:center; gap:16px; padding:16px 28px; min-height:52px; border:2px solid #005567; border-radius:40px; background:#005567; color:#fafafa; font-size:16px; line-height:1.5; font-weight:600; white-space:normal; text-align:center; justify-content:center; }
.concert-abo .concert-abo__button:hover { background:#003e4c; border-color:#003e4c; }
.concert-abo a:focus-visible,.concert-overview__section-heading a:focus-visible { outline:3px solid #936218; outline-offset:5px; }
@media(max-width:799px) {
 .concert-overview__section-heading { flex-direction:column; gap:12px; }
 .concert-abo { scroll-margin-top:12px; margin-top:60px; padding-top:40px; }
 .concert-abo__options { gap:18px; }
 .concert-abo__option { padding:24px; }
 .concert-abo__steps { grid-template-columns:1fr; max-width:520px; gap:24px; }
}
@media(max-width:599px) {
 .concert-abo__options { grid-template-columns:1fr; }
 .concert-abo__heading { text-align:left; }
 .concert-abo__option h3 { font-size:28px; }
 .concert-abo__actions { align-items:flex-start; flex-direction:column; }
 .concert-abo__button { width:100%; }
}
