/* Bewusst nur Ticket-Klassen: bestehende Rubriken behalten ihr Layout. */
.ticket-teaser {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 150px;
  gap: 18px;
  margin: 4px 0 32px;
  padding: 22px;
  border: 2px solid var(--black);
  background: var(--paper) url("assets/bg-paper-strip.webp") center / cover;
  color: var(--black);
  box-shadow: 6px 7px 0 var(--black);
  transform: rotate(-0.7deg);
}
.ticket-teaser::before {
  position: absolute;
  top: -10px;
  left: 32%;
  width: 80px;
  height: 24px;
  background: rgb(225 212 184 / 0.8);
  border: 1px solid rgb(5 5 5 / 0.18);
  content: "";
  transform: rotate(5deg);
}
.ticket-teaser .ticket-kicker { margin: 0 0 8px; font-weight: 900; text-transform: uppercase; letter-spacing: 0.08em; }
.ticket-teaser h2 { margin: 0; font: 400 clamp(1.7rem, 3vw, 2.4rem)/1.06 "Anton", sans-serif; text-transform: uppercase; }
.ticket-teaser p { margin: 10px 0; }
.ticket-teaser .ticket-teaser-date { font-weight: 900; font-size: 0.88rem; }
.ticket-teaser img { display: block; width: 100%; height: auto; border: 2px solid var(--black); transform: rotate(3deg); box-shadow: 4px 5px 0 rgb(0 0 0 / 0.3); }
.ticket-teaser__flyer { align-self: center; }
.ticket-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  max-width: 100%;
  padding: 12px 16px;
  border: 2px solid var(--black);
  background: #b8231d;
  color: #fff;
  font: 800 0.88rem/1.4 Arial, sans-serif;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  box-shadow: 3px 3px 0 var(--black);
}
.ticket-button--secondary { background: var(--paper); color: var(--black); }
.ticket-button:hover { background: var(--black); color: var(--paper); }
.ticket-button:focus-visible, .ticket-page a:focus-visible, .ticket-page input:focus-visible, .ticket-page textarea:focus-visible { outline: 3px solid #e6bc64; outline-offset: 3px; }
.ticket-button[hidden], .ticket-draft[hidden], [data-ticket-preview][hidden] { display: none; }
.ticket-shell { grid-template-columns: 170px minmax(0, 1fr); }
.ticket-page { min-width: 0; }
.ticket-page h1 { margin: 0 0 18px; color: var(--paper); font: 400 clamp(2.2rem, 5.4vw, 4.6rem)/1 "Anton", sans-serif; text-transform: uppercase; overflow-wrap: anywhere; }
.ticket-page h2 { margin: 0 0 12px; font: 400 clamp(1.45rem, 2.6vw, 2rem)/1.2 "Anton", sans-serif; color: var(--paper); }
.ticket-page h3 { font: 400 1.4rem/1.3 "Anton", sans-serif; }
.ticket-page p { overflow-wrap: anywhere; }
.ticket-date { font-weight: 900; color: var(--paper); text-transform: uppercase; }
.ticket-notice { padding: 14px; border-left: 5px solid #e6bc64; background: var(--panel-soft); }
.ticket-event { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 28px; margin: 32px 0; }
.ticket-flyer { margin: 0; }
.ticket-flyer img { display: block; width: 100%; height: auto; border: 2px solid var(--border); }
.ticket-flyer figcaption { margin-top: 8px; color: var(--muted); font-size: 0.8rem; }
.ticket-bands { padding-left: 20px; }
.ticket-bands li { padding-bottom: 10px; font-weight: 800; }
.ticket-text-link { display: inline-block; padding: 10px 0; }
.ticket-transparency { padding: 22px; margin: 30px 0; background: var(--paper); color: var(--black); border: 2px solid var(--black); box-shadow: 5px 5px 0 var(--black); }
.ticket-transparency h2 { color: var(--black); }
.ticket-transparency p:last-child { margin-bottom: 0; }
.ticket-facts { margin: 20px 0; }
.ticket-facts div { padding: 12px 0; border-bottom: 1px solid var(--border); }
.ticket-facts dt { font-weight: 800; }
.ticket-facts dd { margin: 3px 0 0; color: var(--paper); }
.ticket-request { margin-top: 34px; border-top: 3px solid var(--news); padding-top: 24px; }
.ticket-form fieldset { min-width: 0; border: 0; padding: 0; margin: 24px 0 0; }
.ticket-form legend { margin-bottom: 18px; font-weight: 800; }
.ticket-form legend span, .ticket-form label span { font-weight: 400; }
.ticket-form label, .ticket-draft label { display: block; margin: 18px 0 7px; font-weight: 800; }
.ticket-form input, .ticket-form textarea, .ticket-draft textarea { display: block; width: 100%; min-height: 46px; border: 2px solid var(--border); border-radius: 0; padding: 12px; background: #10100f; color: var(--ink); font: 1rem/1.5 Arial, sans-serif; }
.ticket-form textarea, .ticket-draft textarea { resize: vertical; }
.ticket-form input[type="number"] { max-width: 160px; }
.ticket-help { font-size: 0.86rem; color: var(--muted); margin: 8px 0 16px; }
.ticket-draft { margin-top: 28px; padding: 18px; border: 2px solid var(--paper-dark); }
.ticket-draft-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 18px; }
@media (max-width: 980px) { .ticket-shell { grid-template-columns: 150px minmax(0, 1fr); } }
@media (max-width: 720px) {
  .ticket-shell { grid-template-columns: minmax(0, 1fr); }
  .ticket-event { grid-template-columns: minmax(0, 1fr); }
  .ticket-flyer { max-width: 420px; margin: 0 auto; }
  .ticket-teaser { grid-template-columns: minmax(0, 1fr) 110px; padding: 16px; gap: 14px; }
}
@media (max-width: 440px) {
  .ticket-teaser { grid-template-columns: minmax(0, 1fr); transform: none; }
  .ticket-teaser__flyer { grid-row: 1; width: 130px; justify-self: end; margin: 0 4px 6px 0; }
  .ticket-teaser h2 { font-size: 1.85rem; }
  .ticket-transparency, .ticket-draft { padding: 14px; }
  .ticket-draft-actions .ticket-button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .ticket-page { scroll-behavior: auto; } }
