/* Standalone, page-scoped stylesheet. Uses the theme's existing fonts and palette. */
body.page-template-tickets, body.page-template-ticket-details { background-color: #fff; }
.tickets { background: #fff; color: #4e4646; padding-top: 64px; padding-bottom: 64px; font-size: 16px; line-height: 1.8; }
.tickets *, .tickets *::before, .tickets *::after { box-sizing: border-box; }
.tickets h1, .tickets h2 { font-family: 'merriweather_lightregular', serif; font-weight: normal; color: #4e4646; }
.tickets h1 { font-size: clamp(28px, 3vw, 42px); line-height: 1.35; margin: 0 0 24px; }
.tickets-intro { text-align: center; margin-bottom: 44px; }
.tickets-intro h1 { text-transform: uppercase; letter-spacing: .06em; }
.tickets-intro p { margin: 0; }
.tickets-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 40px; }
.tickets-card { min-width: 0; background: #f8f5f0; }
.tickets-photo { display: block; width: 100%; height: auto; aspect-ratio: 356 / 540; object-fit: contain; }
.tickets-card-image { display: block; }
.tickets-card-image .tickets-photo { max-height: 480px; background: #eee8df; }
.tickets-card-body { padding: 28px; }
.tickets-card h2 { font-size: 25px; line-height: 1.5; margin: 0 0 20px; }
.tickets .tickets-price { font-family: 'montserratregular', sans-serif; color: #972143; font-size: 36px; line-height: 1.3; margin: 0 0 24px; }
.tickets-price span { font-size: 19px; }
.tickets .tickets-button { display: inline-flex; align-items: center; justify-content: center; gap: 20px; width: 100%; min-height: 54px; height: auto; padding: 16px 22px; border: 1px solid #972143; border-radius: 4px; background: #972143; color: #fff; font-family: 'montserratregular', sans-serif; font-size: 14px; line-height: 1.5; text-transform: uppercase; letter-spacing: .05em; text-decoration: none; white-space: normal; }
.tickets .tickets-button:hover { background: #791a36; color: #fff; }
.tickets a:focus-visible, .tickets button:focus-visible { outline: 3px solid #972143; outline-offset: 5px; }
.tickets .tickets-button:disabled { background: #eee8df; border-color: #b9ad9e; color: #4e4646; cursor: not-allowed; }
.tickets-back { display: inline-block; margin-bottom: 28px; color: #972143; text-decoration: underline; text-underline-offset: 4px; }
.tickets-detail { max-width: 850px; margin: 0 auto; }
.tickets-hero { background: #eee8df; margin-bottom: 40px; }
.tickets-hero .tickets-photo { height: 480px; }
.tickets-detail-body { max-width: 720px; margin: auto; }
.tickets-detail h1 { text-transform: uppercase; font-size: clamp(26px, 3vw, 38px); }
.tickets-lead { margin-bottom: 28px; }
.tickets-notice { border-left: 4px solid #b4925d; background: #f5efe5; padding: 20px 24px; margin: 28px 0; }
.tickets-notice h2 { font-family: 'montserratbold', sans-serif; text-transform: uppercase; font-size: 16px; margin: 0 0 8px; }
.tickets-notice p { margin: 0; }
.tickets-facts { padding-left: 24px; margin: 24px 0; }
.tickets-facts li { padding-left: 8px; margin-bottom: 14px; }
.tickets-facts li::marker { color: #972143; }
.tickets-refund { font-size: 15px; }
.tickets-documents { border-top: 1px solid #ded6cb; margin-top: 28px; padding-top: 16px; }
.tickets-documents a, .tickets-documents p { display: block; padding: 10px 0; margin: 0; overflow-wrap: anywhere; }
.tickets-documents a { color: #972143; text-decoration: underline; text-underline-offset: 4px; }
.tickets .tickets-purchase { margin-top: 28px; }
.tickets-placeholder { display: flex; align-items: center; justify-content: center; background: #eee8df; }
@media (min-width: 992px) {
    .tickets-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .tickets-card { display: flex; flex-direction: column; }
    .tickets-card-body { display: flex; flex-direction: column; flex: 1; padding: 32px; }
    .tickets-card h2 { flex: 1; }
}
@media (max-width: 767px) {
    .tickets { padding: 36px 24px 48px; }
    .tickets-intro { margin-bottom: 30px; }
    .tickets-card-body { padding: 24px; }
    .tickets-card h2 { font-size: 23px; }
    .tickets-hero .tickets-photo { height: auto; max-height: 480px; }
    .tickets-notice { padding: 18px; }
}
