/* Retain Slide typography, colors and row classes; separate detail/ticket links. */
/* Portaled to body by JS: outside row flow and clipping/transform ancestors. */
body > .elp-cast-panel.elp-cast-floating { display: block; position: fixed; z-index: 100000; width: min(320px, calc(100vw - 24px)); max-height: min(360px, calc(100dvh - 24px)); overflow: auto; overscroll-behavior: contain; margin: 0; padding: 16px; border: 1px solid #d2ac67; border-radius: 8px; background: #fffdf8; color: #29251f; box-shadow: 0 8px 28px #0003; font: 14px/1.65 Arial,sans-serif; text-align: left; }
/* Legacy WPBakery poster columns use -200px to overlap the old event header.
   Managed schedules have variable height: keep their following content in flow.
   Cover both VC versions that put custom margins on the column or its inner. */
.elp-managed-production .elp-production-content { display: flow-root; margin-top: 24px; }
.elp-managed-production .elp-production-content .event_right,
.elp-managed-production .elp-production-content .event_right > .vc_column-inner { margin-top: 0 !important; }
.elp-managed-production .elp-price-typography { font-family: var(--elp-content-font) !important; }
.elp-production-booking { display: flow-root; min-width: 0; container-type: inline-size; }
.elp-production-booking { margin-bottom: 24px; }
.elp-production-booking .elp-production-performances { margin-top: 20px; padding: 18px; border: 1px solid #d8c39b; border-radius: 8px; background: rgba(255,255,255,.45); }
.elp-production-booking .elp-production-performances h2 { margin: 0 0 12px; font-size: 24px; line-height: 1.3; }
.elp-production-booking .elp-production-performances .elp-performance { grid-template-columns: minmax(0,1fr) auto; gap: 12px; padding: 14px 0; align-items: start; }
.elp-production-booking .elp-performance:last-child { border-bottom: 0; }
.elp-production-booking .elp-production-performances .elp-purchase-actions { display: grid; grid-template-columns: 135px 100px; gap: 8px; width: auto; max-width: none; }
.elp-production-booking .elp-performance time { font-size: 13px; line-height: 1.7; }
.elp-production-booking .elp-cast-trigger { min-height: 44px; letter-spacing: .4px; padding: 8px; }
.elp-production-booking .elp-production-performances .elp-ticket-button { font-size: 11px; letter-spacing: .2px; padding: 8px; }
.elp-secondary-actions { display: flex; flex-direction: column; align-items: stretch; gap: 10px; margin-top: 18px; }
.elp-managed-production .elp-secondary-actions .elp-secondary-button { box-sizing: border-box; display: block; width: 100%; min-height: 44px; margin: 0; padding: 12px 16px; border: 1px solid #a88445; border-radius: 6px; background: transparent; color: #30291f; font-weight: 600; font-family: inherit; font-size: 12px; line-height: 1.5; text-align: center; text-decoration: none; cursor: pointer; transition: background-color .15s ease, color .15s ease; }
.elp-managed-production .elp-secondary-actions .elp-secondary-button:hover, .elp-managed-production .elp-secondary-actions .elp-secondary-button:focus, .elp-managed-production .elp-secondary-actions .elp-secondary-button:active { background: #d2ac67; color: #171717; outline-offset: 3px; }
.elp-managed-production .elp-secondary-actions button.elp-secondary-button:is(:hover,:focus,:focus-visible,:active),
.elp-managed-production .elp-cast-trigger:is(:hover,:focus,:focus-visible,:active),
.elp-managed-production a.elp-ticket-link:is(:hover,:focus,:focus-visible,:active) { background-color: #d2ac67 !important; background-image: none !important; color: #171717 !important; outline-offset: 3px; }
@media (max-width: 1024px) {
    .elp-production-booking .elp-production-performances .elp-purchase-actions { grid-template-columns: 135px; }
}
@media (any-pointer: coarse) { .elp-production-booking .elp-production-performances .elp-purchase-actions { grid-template-columns: 135px; } }
@media (max-width: 767px) {
    .elp-managed-production .elp-production-content .vc_row:has(> .wpb_column.event_right) { display: flex; flex-direction: column; }
    .elp-managed-production .elp-production-content .vc_row > .wpb_column.event_right { order: -1; padding-top: 0; }
}
@media (max-width: 700px) {
    .elp-production-booking .elp-production-performances { padding: 12px; }
}
@container (max-width: 460px) {
    .elp-production-booking .elp-production-performances .elp-purchase-actions { grid-template-columns: 135px; }
}
.elp-events-list .single_event_list { display: grid; grid-template-columns: minmax(0,1fr) minmax(160px,190px); gap: 20px; align-items: start; }
.elp-events-list .elp-production-link { display: grid; grid-template-columns: 70px minmax(0,1fr) minmax(100px,.5fr) 65px; align-items: center; gap: 16px; }
.elp-events-list .event_list_entry { float: none; width: auto !important; height: auto !important; line-height: 1.5; padding: 0; margin: 0; }
.elp-events-list .event_title_img { display: flex; align-items: center; gap: 16px; }
.elp-events-list .event_img { float: none; flex: 0 0 70px; width: 70px; height: auto; margin: 0; }
.elp-events-list .event_img img { position: static; transform: none; max-height: 100px; width: 100%; object-fit: contain; }
.elp-events-list .evnt_list_title_loc { float: none; min-width: 0; }
.elp-events-list .event_buy { text-align: center; }
.elp-events-list .single_event_list::after, .elp-event-cards::after { display: none; }
.elp-purchase-actions { display: flex; flex-direction: column; align-items: stretch; gap: 9px; width: 180px; max-width: 100%; }
.elp-purchase-actions .elp-ticket-button { box-sizing: border-box; display: block; width: 100%; min-height: 44px; padding: 0 12px; line-height: 42px; border: 1px solid #d2ac67; border-radius: 5px; background: #d2ac67; color: #171717; font-family: inherit; font-size: 12px; font-weight: 600; letter-spacing: .6px; text-align: center; text-decoration: none; white-space: nowrap; }
.elp-purchase-actions .elp-ticket-link:hover, .elp-purchase-actions .elp-ticket-link:focus-visible { filter: brightness(.94); }
.elp-purchase-actions .elp-last_tickets, .elp-purchase-actions .elp-sold_out, .elp-purchase-actions .elp-canceled { background: #f04c45; border-color: #f04c45; color: #fff; }
.elp-ticket-status { cursor: default; }
.elp-performance { display: grid; grid-template-columns: minmax(0,1fr) 180px; align-items: start; gap: 1rem; padding: 18px 0; border-bottom: 1px solid #e8dfcd; }
/* Schedule columns adapt to their actual builder column, not the viewport. */
.elp-production-performances { display: flow-root; width: 100%; max-width: 100%; min-width: 0; box-sizing: border-box; }
.elp-production-performances .elp-performance { grid-template-columns: repeat(auto-fit,minmax(min(100%,210px),1fr)); width: 100%; max-width: 100%; min-width: 0; box-sizing: border-box; }
.elp-production-performances .elp-performance time { min-width: 0; overflow-wrap: anywhere; }
.elp-production-performances .elp-purchase-actions { width: 100%; max-width: 180px; min-width: 0; justify-self: end; margin: 0; }
.elp-production-performances .elp-purchase-actions .elp-ticket-button { display: flex; justify-content: center; align-items: center; width: 100%; max-width: 100%; min-width: 0; min-height: 44px; margin: 0; padding: 10px 12px; white-space: normal; line-height: 1.5; box-sizing: border-box; }
@media (max-width: 700px) { .elp-production-performances .elp-purchase-actions { max-width: none; } }
.elp-cast { display: flex; flex-direction: column; }
.elp-cast-panel { display: none; position: static; box-sizing: border-box; width: 100%; padding: 12px; margin-top: 8px; color: #222; background: #fcfaf5; border-left: 2px solid #d2ac67; text-align: left; font-size: 13px; line-height: 1.6; overflow-wrap: anywhere; }
.elp-cast-trigger { font-family: inherit; font-size: 11px; font-weight: 600; letter-spacing: 1.3px; line-height: 1.5; padding: 9px 12px; background: transparent; color: #8a6422; border: 1px solid #d2ac67; border-radius: 4px; text-decoration: none; cursor: help; transition: background .15s ease; }
.elp-cast-trigger:hover, .elp-cast-trigger:focus-visible { background: #faf5e9; outline-offset: 3px; }

.elp-events-list [hidden] { display: none !important; }


.elp-event-cards { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,260px),1fr)); gap: 24px; align-items: start; }
.elp-event-card { min-width: 0; border: 1px solid #e8dfcd; border-radius: 6px; overflow: hidden; }
.elp-card-poster img { display: block; width: 100%; max-height: 380px; object-fit: contain; }
.elp-card-content { padding: 20px; }
.elp-card-content .elp-purchase-actions { margin-top: 16px; }
@media (max-width: 1100px) { .elp-events-list .elp-production-link { grid-template-columns: 65px minmax(0,1fr) 60px; } .elp-events-list .event_venue { grid-column: 2; } }
@media (max-width: 700px) {
    .elp-events-list .single_event_list, .elp-performance { grid-template-columns: 1fr; }
    .elp-events-list .elp-production-link { grid-template-columns: 1fr; text-align: center; }
    .elp-events-list .event_venue { grid-column: auto; }
    .elp-events-list .event_title_img { justify-content: center; }
    .elp-purchase-actions { margin-inline: auto; }
}
