.oc-purchase-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 330px;
    gap: 22px;
    align-items: start;
    margin: 24px 0;
    color: #172033;
    font: 14px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
}
.oc-purchase-layout *, .oc-purchase-layout *::before, .oc-purchase-layout *::after { box-sizing: border-box; }
.oc-map-card, .oc-checkout .oc-cart { min-width: 0; border: 1px solid #e3e7ed; border-radius: 18px; background: #fff; box-shadow: 0 5px 24px rgb(15 23 42 / 4%); }
.oc-map-heading { padding: 22px 24px 0; }
.oc-map-heading h2 { margin: 0 0 7px; font: 650 23px/1.3 -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif; color: #172033; }
.oc-map-heading p, .oc-checkout .oc-cart-hint, .oc-checkout .oc-contact-help, .oc-checkout .oc-provider-help { margin: 0; color: #64748b; font-size: 13px; line-height: 1.6; }
.oc-purchase-layout .oc-eyebrow { margin: 0 0 5px; color: #8b7249; font-size: 11px; font-weight: 700; letter-spacing: .06em; }
.oc-map-card .checkboxes { min-width: 0; min-height: 0; }
.oc-map-card .checkbox-parent { overflow: hidden; border-radius: 18px; }
.oc-map-card #svg_div { position: relative; overflow: hidden; isolation: isolate; }
.oc-map-card #svg920 { position: relative !important; display: block; overflow: hidden; width: 100% !important; height: 520px; height: clamp(380px, 44vw, 620px); touch-action: none; user-select: none; -webkit-user-select: none; }
.oc-map-card #example1 { position: absolute; z-index: 5; display: flex; gap: 2px; right: 12px; top: 12px; bottom: auto; width: auto !important; padding: 4px; border: 1px solid #e2e8f0; border-radius: 12px; background: #fff; box-shadow: 0 3px 12px rgb(15 23 42 / 10%); }
.oc-map-controls button { display: grid; place-items: center; width: 42px; height: 42px; margin: 0; padding: 0; border: 0; border-radius: 8px; background: #fff; color: #334155; cursor: pointer; touch-action: manipulation; }
.oc-map-controls button:hover { background: #f1f5f9; }
.oc-map-controls button:focus-visible { outline: 2px solid #b49761; outline-offset: 1px; }
.oc-map-controls svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; pointer-events: none; }
.oc-checkout, .oc-checkout.mobile { position: static; bottom: auto; left: auto; z-index: auto; min-width: 0; width: 100%; margin: 0; padding: 0; border: 0; background: transparent; backdrop-filter: none; }
.oc-checkout .oc-cart { position: sticky; top: 20px; padding: 22px; }
.oc-checkout .oc-cart-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 17px; }
.oc-checkout .oc-cart-heading h3 { margin: 0; font: 650 19px/1.4 -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif; color: #172033; }
.oc-checkout [data-selection-count] { display: grid; place-items: center; min-width: 28px; height: 28px; padding: 0 7px; border-radius: 9px; background: #f1f5f9; color: #475569; font-weight: 700; }
.oc-checkout .oc-empty { padding: 24px 12px; border: 1px dashed #d9e0e8; border-radius: 12px; background: #fafbfc; text-align: center; }
.oc-checkout .oc-empty strong { font-size: 14px; color: #475569; }
.oc-checkout .oc-empty p { margin: 6px 0 0; color: #8390a2; font-size: 12px; line-height: 1.6; }
.oc-checkout .description { height: auto !important; padding: 0; overflow: visible !important; }
.oc-checkout .event_tickets { width: 100%; margin: 0; border: 0; table-layout: auto; border-collapse: collapse; }
.oc-checkout .event_tickets thead { display: none; }
.oc-checkout .event_tickets tr { display: table-row; margin: 0 !important; }
.oc-checkout .event_tickets td { padding: 12px 4px; border: 0; border-bottom: 1px solid #edf0f4; font: 12px/1.6 -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif; color: #334155; vertical-align: middle; }
.oc-checkout .event_tickets .price { white-space: nowrap; font-weight: 650; font-variant-numeric: tabular-nums; }
.oc-checkout .oc-seat-section, .oc-checkout .oc-seat-position { display: block; overflow-wrap: anywhere; }
.oc-checkout .oc-seat-section { font-weight: 600; }
.oc-checkout .oc-seat-position { color: #64748b; }
.oc-checkout .oc-mobile-summary { display: none; }
.oc-checkout .delete_ticket { display: grid; place-items: center; width: 30px; height: 30px; padding: 0; margin: 0; border: 0; border-radius: 8px; background: #f1f5f9; color: #64748b; font: 20px/1 Arial, sans-serif; cursor: pointer; }
.oc-checkout .delete_ticket:hover { background: #fff1f2; color: #be123c; }
.oc-checkout .delete_ticket svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; pointer-events: none; }
.oc-checkout .oc-field { display: flex; flex-direction: column; gap: 6px; margin: 0; color: #475569; font-size: 12px; font-weight: 600; text-align: left; }
.oc-checkout .oc-field input, .oc-checkout .oc-field textarea { display: block; width: 100%; max-width: 100%; height: auto; min-height: 44px; margin: 0; padding: 11px 13px; border: 1px solid #d9e0e8; border-radius: 10px; background: #fff; color: #172033; font: 15px/1.4 -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif; box-shadow: none; }
.oc-checkout .oc-field textarea { resize: vertical; min-height: 76px; }
#ticket_form.oc-checkout .oc-field input, #ticket_form.oc-checkout .oc-field textarea { border: 1px solid #d9e0e8 !important; border-radius: 10px !important; }
#ticket_form.oc-checkout .oc-field input:focus, #ticket_form.oc-checkout .oc-field textarea:focus { outline: none; border-color: #ad9060 !important; box-shadow: 0 0 0 3px rgb(180 151 97 / 13%); }
#ticket_form.oc-checkout .oc-field [aria-invalid=true] { border-color: #e98080 !important; background: #fffafa; }
.oc-checkout .oc-field small { color: #b42318; font-size: 11px; font-weight: 400; }
.oc-checkout .oc-field small:empty { display: none; }
.oc-checkout .oc-coupon { margin-top: 19px; }
.oc-checkout .oc-total { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin: 20px 0 15px; padding-top: 17px; border-top: 1px solid #e8edf2; color: #64748b; }
.oc-checkout .oc-total strong { color: #172033; font-size: 23px; font-weight: 700; font-variant-numeric: tabular-nums; }
.oc-checkout .oc-primary { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; width: 100%; margin: 0; padding: 12px 18px; border: 1px solid #172033; border-radius: 11px; background: #172033; color: #fff; font: 650 14px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif; text-transform: none; cursor: pointer; }
.oc-checkout .oc-primary:hover { background: #29344a; color: #fff; }
.oc-checkout button:disabled { opacity: .45; cursor: not-allowed; }
.oc-checkout .oc-primary:focus-visible, .oc-checkout .oc-close:focus-visible, .oc-checkout .oc-method:focus-visible { outline: 3px solid #b49761; outline-offset: 3px; }
.oc-checkout .oc-cart-hint { margin-top: 13px; text-align: center; font-size: 11px; }
.oc-checkout .oc-modal { position: fixed; left: 0; right: 0; top: var(--oc-viewport-top, 0px); bottom: auto; width: 100%; max-width: none; max-height: none; height: var(--oc-viewport-height, 100vh); height: var(--oc-viewport-height, 100dvh); z-index: 1000000; display: grid; grid-template-columns: minmax(0, 1fr); place-items: center; overflow: auto; margin: 0; padding: 24px; border: 0; color: inherit; background: rgb(15 23 42 / 55%); backdrop-filter: blur(3px); }
.oc-checkout .oc-modal::backdrop { background: transparent; }
.oc-checkout .oc-modal[aria-hidden=true] { display: none; }
body.oc-dialog-open { overflow: hidden; }
.oc-checkout .oc-dialog { display: flex; flex-direction: column; width: 100%; max-width: 620px; min-width: 0; max-height: 100%; margin: auto; padding: 0; overflow: hidden; border: 1px solid #e2e8f0; border-radius: 20px; background: #fff; box-shadow: 0 24px 80px rgb(0 0 0 / 24%); text-align: left; }
.oc-checkout .modal-header { flex-shrink: 0; position: relative; z-index: 2; display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; min-height: 76px; padding: 22px 80px 22px 26px; border-bottom: 1px solid #edf0f4; background: #fff; }
.oc-checkout .modal-header > div { min-width: 0; }
.oc-checkout .modal-header h2 { margin: 0; color: #172033; font: 650 23px/1.3 -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif; }
.oc-checkout .oc-close { position: absolute; top: 16px; right: 16px; bottom: auto; left: auto; display: grid; place-items: center; float: none; transform: none; width: 44px; height: 44px; margin: 0; padding: 0; border: 0; border-radius: 10px; background: #f1f5f9; color: #475569; cursor: pointer; }
.oc-checkout .oc-close svg { display: block; width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; pointer-events: none; }
.oc-checkout .oc-dialog-body { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 22px 26px; }
.oc-checkout .oc-contact-help { margin-bottom: 19px; }
.oc-checkout .oc-fields { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; }
.oc-checkout .oc-wide { grid-column: 1 / -1; }
.oc-checkout .oc-methods { margin: 22px 0 12px; padding: 0; border: 0; }
.oc-checkout .oc-methods legend { width: auto; margin: 0 0 9px; padding: 0; border: 0; color: #475569; font-size: 12px; font-weight: 600; }
.oc-checkout .oc-method { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; width: 100%; min-height: 58px; margin: 0 0 8px; padding: 12px 14px; border: 1px solid #e2e8f0; border-radius: 11px; background: #fff; color: #475569; font: 600 13px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif; cursor: pointer; }
.oc-checkout .oc-method.is-selected { border-color: #b49761; background: #fcfaf6; box-shadow: 0 0 0 1px #b49761; }
.oc-checkout .oc-card-logos { display: flex; align-items: center; gap: 8px; }
.oc-checkout .oc-card-logos img { display: block; width: 40px; height: 23px; margin: 0; object-fit: contain; border: 0; }
.oc-checkout .oc-provider-help { font-size: 11px; }
.oc-checkout .oc-consent { display: flex; align-items: flex-start; gap: 9px; margin: 21px 0 0; font-size: 12px; line-height: 1.6; cursor: pointer; }
.oc-checkout .oc-consent input { flex: 0 0 17px; width: 17px; height: 17px; margin: 1px 0 0; accent-color: #172033; }
.oc-checkout .oc-consent a { color: #475569; font: inherit; text-decoration: underline; text-underline-offset: 3px; }
.oc-checkout .oc-status, .oc-checkout .oc-server-errors { margin: 16px 0 0; padding: 12px 14px; border-radius: 10px; background: #f1f5f9; color: #475569; font-size: 12px; line-height: 1.7; }
.oc-checkout .oc-status[data-tone=error], .oc-checkout .oc-server-errors { background: #fff1f2; color: #b42318; }
.oc-checkout .oc-dialog-footer { flex-shrink: 0; position: relative; display: flex; align-items: center; gap: 20px; padding: 18px 26px; border-top: 1px solid #edf0f4; background: #fff; }
.oc-checkout .oc-dialog-footer > div { flex: 1 0 auto; display: flex; flex-direction: column; color: #64748b; font-size: 11px; }
.oc-checkout .oc-dialog-footer strong { color: #172033; font-size: 21px; font-variant-numeric: tabular-nums; }
.oc-checkout .oc-dialog-footer .oc-primary { width: auto; flex: 1 1 auto; }
.oc-checkout .oc-spinner { display: inline-block; flex: 0 0 17px; width: 17px; height: 17px; border: 2px solid rgb(255 255 255 / 35%); border-top-color: #fff; border-radius: 50%; animation: oc-spin .7s linear infinite; }
.oc-checkout [hidden] { display: none !important; }
@keyframes oc-spin { to { transform: rotate(360deg); } }
@media (max-width: 1050px) { .oc-purchase-layout { grid-template-columns: minmax(0, 1fr); } .oc-checkout .oc-cart { position: static; } }
@media (max-width: 600px) {
    body.oc-has-selection { padding-bottom: calc(88px + env(safe-area-inset-bottom, 0px)); }
    .oc-purchase-layout { gap: 14px; margin: 14px 0; }
    .oc-map-heading { padding: 18px 16px 0; }
    .oc-map-heading h2 { font-size: 20px; }
    .oc-map-card #svg920 { height: 390px; }
    .oc-map-controls button { width: 44px; height: 44px; }
    .oc-checkout .oc-cart { padding: 18px; }
    .oc-checkout .event_tickets tbody { display: grid; gap: 8px; }
    .oc-checkout #myTable tbody tr { display: grid !important; grid-template-columns: minmax(0, 1fr) auto 44px; align-items: center; gap: 10px; margin: 0 !important; padding: 10px; border: 1px solid #e8edf2; border-radius: 12px; background: #fafbfc; }
    .oc-checkout .event_tickets td { display: block; width: auto; padding: 0; border: 0; }
    .oc-checkout .event_tickets .price { font-size: 14px; }
    .oc-checkout .delete_ticket { width: 44px; height: 44px; }
    .oc-checkout .oc-mobile-summary { position: fixed; z-index: 1000; left: 0; right: 0; bottom: 0; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px)); border-top: 1px solid #e2e8f0; background: #fff; box-shadow: 0 -4px 20px rgb(15 23 42 / 8%); }
    .oc-checkout .oc-mobile-summary > div { display: flex; flex-direction: column; min-width: 0; color: #64748b; font-size: 11px; }
    .oc-checkout .oc-mobile-summary strong { color: #172033; font-size: 20px; white-space: nowrap; }
    .oc-checkout .oc-mobile-summary [data-selection-count] { display: inline; min-width: 0; height: auto; padding: 0; background: none; font: inherit; }
    .oc-checkout .oc-mobile-summary .oc-primary { width: auto; min-width: 145px; }
    body.oc-dialog-open .oc-mobile-summary { visibility: hidden; }
    .oc-checkout .oc-modal { top: var(--oc-viewport-top, 0px); bottom: auto; height: var(--oc-viewport-height, 100vh); height: var(--oc-viewport-height, 100dvh); padding: 6px; }
    .oc-checkout .oc-dialog { max-height: 100%; margin: auto; border-radius: 15px; }
    .oc-checkout .modal-header, .oc-checkout .oc-dialog-body { padding: 16px; }
    .oc-checkout .modal-header { padding-right: 72px; }
    .oc-checkout .oc-dialog-footer { padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px)); }
    .oc-checkout .modal-header h2 { font-size: 20px; }
    .oc-checkout .oc-close { top: 12px; right: 12px; }
    .oc-checkout .oc-fields { grid-template-columns: minmax(0, 1fr); }
    .oc-checkout .oc-field input, .oc-checkout .oc-field textarea { font-size: 16px; }
    .oc-checkout .oc-dialog-footer { gap: 12px; }
    .oc-checkout .oc-dialog-footer strong { font-size: 19px; }
    .oc-checkout .oc-dialog-footer .oc-primary { padding: 12px; }
}
@media (prefers-reduced-motion: reduce) { .oc-checkout .oc-spinner { animation-duration: 1.5s; } }
