[data-ticket-open][hidden], [data-ticket-fallback][hidden] { display: none !important; }
button[data-ticket-open] { font: inherit; font-weight: 800; cursor: pointer; }
.ticket-modal { box-sizing: border-box; width: min(760px, calc(100vw - 48px)); height: min(920px, calc(100dvh - 48px)); max-width: none; max-height: none; padding: 24px; border: 2px solid #d7b04b; background: #f8f7f1; color: #102d28; overflow: auto; }
.ticket-modal::backdrop { background: rgb(0 0 0 / 70%); }
.ticket-modal .ticket-modal-header { display: flex; align-items: start; justify-content: space-between; gap: 16px; margin: 0 0 16px; }
.ticket-modal h2 { margin: 0; color: #102d28; font-family: Georgia, serif; font-size: clamp(1.5rem, 4vw, 2rem); line-height: 1.2; }
.ticket-modal p { margin: 0 0 16px; font-size: 1rem; line-height: 1.5; }
.ticket-modal a { color: #84322e; text-decoration: underline; text-underline-offset: 3px; }
.ticket-modal-close { flex-shrink: 0; min-height: 44px; padding: 8px 16px; border: 2px solid #102d28; background: #102d28; color: white; font: inherit; font-weight: 700; cursor: pointer; }
.ticket-modal :is(a, button):focus-visible { outline: 3px solid #84322e; outline-offset: 4px; }
.ticket-modal-frame iframe { display: block; width: 100%; height: 850px; border: 0; background: white; }
html.ticket-modal-open { overflow: hidden; }
@media (max-width: 600px) {
  .ticket-modal { width: 100%; height: 100dvh; margin: 0; padding: 20px; border: 0; }
  .ticket-modal .ticket-modal-header { position: sticky; top: -20px; z-index: 1; padding-block: 12px; background: #f8f7f1; }
  .ticket-modal-frame iframe { height: 1100px; }
}
@media print { .ticket-modal, [data-ticket-open] { display: none !important; } }
