/* Bandinfo: offene Seite und Vorschau in der Backstage. */
.bandinfo { max-width: 860px; margin: 0 auto; }
.bandinfo__head { text-align: center; margin: 1rem 0 2rem; }
.bandinfo__festival { text-transform: uppercase; letter-spacing: .08em; color: #6c757d; margin: 0; }
.bandinfo__title { font-size: 2.6rem; font-weight: 800; margin: .25rem 0; }
.bandinfo__artist { font-size: 2rem; font-weight: 700; margin: 0; }
.bandinfo__toc { border-top: 1px solid #dee2e6; border-bottom: 1px solid #dee2e6; padding: 1rem 0; margin-bottom: 2rem; }
.bandinfo__toc ol { margin: 0; }
.bandinfo__section { margin-bottom: 2.5rem; break-inside: avoid-page; }
.bandinfo__section h2 { font-size: 1.4rem; border-bottom: 2px solid currentColor; padding-bottom: .25rem; margin-bottom: 1rem; }
.bandinfo-table { width: 100%; border-collapse: collapse; margin: .5rem 0 1rem; }
.bandinfo-table th, .bandinfo-table td { border: 1px solid #dee2e6; padding: .35rem .5rem; text-align: left; vertical-align: top; }
.bandinfo-table thead th { background: rgba(0, 0, 0, .05); }
.bandinfo-running-order tr.is-current td { background: rgba(13, 110, 253, .08); }
@media print { .bandinfo__toc { display: none; } }
.bandinfo img { max-width: 100%; height: auto; }
.js-bandinfo-template .ql-editor img { max-width: 100%; }
.bandinfo-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1rem; margin: 1rem 0; }
.bandinfo-card { display: flex; gap: .75rem; align-items: flex-start; }
.bandinfo-card__image { width: 120px; flex: 0 0 120px; border-radius: .25rem; object-fit: cover; }
.bandinfo-card__body p { margin: 0 0 .25rem; }
