/* Booking presentation only. The 25x30 seat grid and identifiers are unchanged. */
.boheme-scene-wrapper { display:grid; grid-template-columns:minmax(0,1fr) 320px; align-items:start; gap:24px; margin:0; }
.boheme-price-filter { grid-column:1/-1; display:flex; flex-wrap:wrap; gap:8px; margin:0; }
.boheme-price-filter .price_item { display:inline-flex; align-items:center; gap:8px; min-height:46px; margin:0; padding:10px 12px; background:var(--color-surface); color:var(--color-text); border:1px solid var(--color-border); border-radius:6px; box-shadow:none; font:500 15px/1.5 var(--bh-body); cursor:pointer; }
.boheme-price-filter .price_item b { color:inherit; font-weight:600; }
.boheme-price-filter .price_item:hover { border-color:var(--color-primary); }
.boheme-price-filter .price_item[aria-pressed=true] { border-color:var(--color-primary); background:#F5E9ED; }
.price_item .bh-price-dot { flex-shrink:0; width:12px; height:12px; border-radius:50%; }
.bh-price-check { width:16px; height:16px; flex-shrink:0; visibility:hidden; }
.price_item[aria-pressed=true] .bh-price-check { visibility:visible; }
#venue-viewport { grid-column:1; position:relative; overflow:hidden; height:660px; min-height:360px; margin:0; padding:0; background:var(--color-surface); border:1px solid var(--color-border); border-radius:6px; }
#venue-surface { position:absolute; inset:0; touch-action:none; cursor:grab; }
#venue-svg { position:absolute; inset:0; display:block; width:100%; height:100%; pointer-events:none; }
#venue-map { position:absolute; top:0; left:0; width:939px!important; min-width:939px; min-height:702px; display:flow-root; white-space:nowrap; user-select:none; transform-origin:0 0; }
#venue-map .section-title { padding:16px 20px; margin:22px 0; text-align:center; background:var(--color-bg); color:var(--color-text); font:600 22px/1.5 var(--bh-body); }
#venue-map .venue-seat-row { display:flex; align-items:center; justify-content:center; height:30px; clear:both; }
#venue-map .venue-seat-row > a,#venue-map .venue-seat-row > span { display:inline-flex; flex:0 0 25px; width:25px; height:30px; margin:0; padding:0; align-items:center; justify-content:center; }
#venue-map .venue-seat-row > span { color:var(--color-text); font:600 20px/1.2 var(--bh-body); }
#venue-map .seat-icon { display:block; width:23px!important; height:27px!important; flex-shrink:0; transform-origin:center; transform-box:fill-box; }
#venue-map .seat-number { fill:#fff; stroke:#211D19; stroke-width:.7px; paint-order:stroke fill; font:700 20px Arial,sans-serif; pointer-events:none; }
#venue-map .seat-selected-mark { display:none; }
#venue-map .seat-icon.selected { fill:var(--color-primary)!important; stroke:var(--color-text); stroke-width:1.4px; }
#venue-map .selected .seat-selected-mark { display:block; }
#venue-map .get-order { cursor:pointer; text-decoration:none; }
#venue-map .get-order:hover .seat-icon { filter:brightness(.85); }
#venue-map .get-order:focus-visible { outline-offset:1px; }
#venue-map .disabled { opacity:.45; cursor:not-allowed; }
#venue-map .bh-price-muted .seat-icon { opacity:.25; }
#venue-map .bh-price-muted:focus-visible .seat-icon,#venue-map .bh-price-muted:hover .seat-icon { opacity:1; }
#venue-map .venue-air-conditioners { display:flex; width:100%; height:60px; align-items:flex-start; clear:both; }
#venue-map .venue-air-conditioners > div { padding:0 15px; }
#venue-map .venue-air-conditioners > div:nth-child(1) { width:41.666667%; }
#venue-map .venue-air-conditioners > div:nth-child(2) { width:8.333333%; margin-right:1%; }
#venue-map .venue-air-conditioners > div:nth-child(3) { width:8.333333%; }
#venue-map .venue-air-conditioners img { display:block; height:50px; width:auto; max-width:none; margin-left:auto; }
#venue-map .venue-air-conditioners > div:nth-child(3) img { margin-right:auto; }
.venue-zoom-controls { position:absolute; right:12px; top:12px; z-index:2; display:flex; flex-direction:column; gap:8px; }
.venue-zoom-controls button { width:44px; height:44px; padding:0; border:1px solid var(--color-border); border-radius:4px; background:var(--color-surface); color:var(--color-text); cursor:pointer; font-size:20px; }
.venue-zoom-controls button:hover { border-color:var(--color-primary); }

#ticket_form { display:contents; }
#ticket_form > br { display:none; }
.boheme-selection { grid-column:2; grid-row:2; position:sticky; top:112px; min-width:0; margin:0; padding:20px; border:1px solid var(--color-border); border-radius:6px; background:var(--color-surface); }
.selection-header { display:flex; align-items:center; gap:12px; margin-bottom:16px; }
.boheme-modern .selection-header h3 { margin:0; padding:0; font:600 20px/1.4 var(--bh-body); }
#selection-count { display:inline-flex; justify-content:center; align-items:center; min-width:28px; height:28px; padding:0 6px; background:var(--color-bg); color:var(--color-text); border-radius:4px; font:600 14px/1 var(--bh-body); }
#selection-empty { margin:0 0 20px; color:var(--color-text-muted); font-size:14px; }
#selected-seats { display:grid; grid-template-columns:minmax(0,1fr); gap:12px; max-height:400px; overflow-y:auto; scrollbar-width:thin; }
.selected-seat-card { position:relative; display:flex; flex-wrap:wrap; gap:8px; min-width:0; padding:12px 40px 12px 12px; border:1px solid var(--color-border); border-radius:4px; background:var(--color-bg); }
.selected-seat-info { width:100%; min-width:0; }
.selected-seat-section { display:block; margin-bottom:4px; color:var(--color-text-muted); font-size:12px; overflow-wrap:anywhere; }
.selected-seat-position { display:flex; flex-wrap:wrap; gap:4px 12px; color:var(--color-text-muted); font-size:13px; }
.selected-seat-position b { color:var(--color-text); font-size:16px; }
.selected-seat-price { color:var(--color-text); font:600 16px/1.5 var(--bh-body); }
.boheme-selection .delete_ticket { position:absolute; right:2px; top:6px; width:36px!important; height:44px!important; min-width:36px!important; padding:0!important; display:grid; place-items:center; border:0!important; border-radius:4px; box-shadow:none!important; background:transparent!important; color:var(--color-text-muted)!important; font-size:26px; cursor:pointer; }
.boheme-selection .delete_ticket:hover { color:var(--color-primary)!important; background:#F5E9ED!important; }
.selection-summary { display:flex; flex-direction:column; gap:16px; padding-top:20px; margin-top:20px; border-top:1px solid var(--color-border); background:var(--color-surface); }
.selection-total { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:8px; color:var(--color-text-muted); font-size:14px; }
.selection-total strong { color:var(--color-text); font:600 22px/1.4 var(--bh-body); }
.selection-buy { width:100%; cursor:pointer; }

body.boheme-modern.bh-checkout-open { overflow:hidden; }
body.bh-checkout-open #middle { position:relative; z-index:10001; }
#myModal { display:none; position:fixed; inset:0; z-index:9998; padding:24px 12px; overflow:auto; overscroll-behavior:contain; background:#211D19AD; scrollbar-width:thin; }
#myModal .modal-content { position:relative; width:min(760px,96%); margin:auto; padding:0; overflow:visible; border:0; border-radius:6px; background:var(--color-surface); box-shadow:0 24px 64px #211d1933; }
#myModal .modal-header { position:sticky; top:-24px; z-index:3; display:flex; align-items:center; gap:16px; padding:20px 24px; background:var(--color-dark); color:var(--color-bg); border:0; border-radius:6px 6px 0 0; }
.boheme-modern #myModal .modal-header h2 { flex:1; min-width:0; margin:0; padding:0; color:var(--color-bg); font-size:24px!important; line-height:1.45; overflow-wrap:anywhere; }
.boheme-modern #myModal .modal-header .close { display:grid; flex:0 0 44px; place-items:center; width:44px; height:44px; min-width:44px; min-height:44px; margin:0; padding:0!important; border:1px solid var(--bh-stage-line)!important; border-radius:6px!important; background:transparent!important; color:var(--color-bg)!important; font:400 28px/1 var(--bh-body)!important; opacity:1; cursor:pointer; text-shadow:none; }
#myModal .modal-header .close:hover { border-color:var(--color-gold)!important; color:var(--color-gold)!important; }
#myModal .modal-header .close:focus-visible { outline-color:var(--color-gold)!important; }
.modal-body { padding:24px; margin:0; }
.modal-footer { padding:24px; text-align:left; border-top:1px solid var(--color-border); border-radius:0 0 6px 6px; background:var(--color-surface); }
.boheme-contact-card { padding:0; background:var(--color-surface); }
.bh-checkout-summary { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:12px; padding:0 0 20px; margin-bottom:24px; border-bottom:1px solid var(--color-border); color:var(--color-text-muted); font-size:14px; }
.bh-checkout-summary b { color:var(--color-text); margin-left:6px; }
.bh-checkout-summary strong { color:var(--color-text); font:600 22px/1.4 var(--bh-body); }
.form_field_wrap { position:relative; margin-bottom:20px; }
#ticket_form .boheme-input,#ticket_form .boheme-textarea { width:100%; min-height:52px; padding:12px 16px!important; background:var(--color-surface)!important; color:var(--color-text); border:1px solid var(--color-border)!important; border-radius:6px!important; box-shadow:none!important; font:400 16px/1.6 var(--bh-body)!important; }
#ticket_form .boheme-textarea { min-height:96px; height:96px; resize:vertical; }
#ticket_form .boheme-input::placeholder,#ticket_form .boheme-textarea::placeholder { color:var(--color-text-muted); opacity:1; }
#ticket_form .boheme-input:focus,#ticket_form .boheme-textarea:focus { border-color:var(--color-primary)!important; }
.boheme-payment-title { padding-top:24px; border-top:1px solid var(--color-border); margin-top:24px; }
.boheme-payment-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:0; }
.boheme-payment-grid > .col-md-4 { width:auto; float:none; padding:0; }
.boheme-payment-grid .boheme-payment-title { grid-column:1/-1; padding:0; border:0; margin:0; }
.boheme-payment-card { position:relative; display:flex; flex-wrap:wrap; align-items:center; gap:8px; height:100%; padding:16px; background:var(--color-surface); text-align:left; border:1px solid var(--color-border); border-radius:6px; margin:0; }
.boheme-payment-card.is-selected { border-color:var(--color-primary); background:#F5E9ED; }
.boheme-payment-card input[type=radio] { position:absolute; top:18px; right:16px; display:block; width:20px; height:20px; margin:0; opacity:1; appearance:auto; accent-color:var(--color-primary); cursor:pointer; }
.boheme-modern .boheme-payment-card h2,.boheme-modern .boheme-payment-title h2 { margin:0 0 16px; font:600 20px/1.5 var(--bh-body)!important; }
.boheme-modern .boheme-payment-card h2 { flex:1 0 100%; padding-right:20px; font-size:16px!important; margin:0 0 8px; }
.pay-master { display:inline-flex; align-items:center; justify-content:center; min-height:44px; margin:0; padding:6px; background:var(--color-surface); color:var(--color-text); border:1px solid var(--color-border); border-radius:4px; cursor:pointer; }
.pay-master img { max-height:30px; max-width:64px; width:auto; border:0; }
.pay-master[aria-pressed=true] { border-color:var(--color-primary); box-shadow:inset 0 0 0 1px var(--color-primary); }
#terms { width:100%; }
#myModal .check_parent { display:flex; align-items:center; gap:12px; min-height:48px; margin-bottom:16px; }
#myModal #terms-and-conditions { position:static; display:block; flex:0 0 24px; width:24px; height:24px; margin:0; opacity:1; appearance:auto; accent-color:var(--color-primary); }
#myModal .check_parent label { margin:0; font-size:14px; line-height:1.6; }
#myModal .check_parent label::before,#myModal .check_parent label::after { display:none; }
#myModal .modal-footer .contact_widget_phone { display:block; margin-top:16px; font-size:14px; color:var(--color-text-muted); }
#myModal .modal-footer .m-b-2 { margin:0; }
#ticket_form .boheme-input:user-invalid { border-color:var(--color-primary)!important; }
.m-b-2 { margin-bottom:20px; }
#snackbar { display:none; }

@media(max-width:1000px) {
 .boheme-scene-wrapper { grid-template-columns:minmax(0,1fr); }
 #venue-viewport { height:560px; }
 .boheme-selection { grid-column:1; grid-row:3; position:static; }
 #selected-seats { grid-template-columns:repeat(2,minmax(0,1fr)); max-height:none; }
 .selection-summary { flex-direction:row; align-items:center; justify-content:space-between; gap:24px; }
 .selection-total { flex:1; }
 .selection-buy { width:auto; min-width:160px; }
}
@media(max-width:700px) {
 .boheme-scene-wrapper { gap:16px; }
 #venue-viewport { height:440px; min-height:360px; }
 .boheme-price-filter { gap:8px; }
 .boheme-price-filter .price_item { font-size:14px; padding:8px 10px; min-height:44px; }
 .boheme-selection { padding:16px; }
 #selected-seats { grid-template-columns:minmax(0,1fr); }
 .selection-summary { position:sticky; bottom:0; padding-bottom:8px; }
 .selection-total { display:block; } .selection-total strong { display:block; }
 .selection-buy { min-width:136px; }
 #myModal { padding:0; }
 #myModal .modal-content { width:100%; min-height:100dvh; border-radius:0; }
 #myModal .modal-header { top:0; padding:16px; border-radius:0; }
 .boheme-modern #myModal .modal-header h2 { font-size:22px!important; }
 #myModal .modal-body { padding:20px 16px; } #myModal .modal-footer { padding:20px 16px max(20px,env(safe-area-inset-bottom)); border-radius:0; }
 .boheme-payment-grid { grid-template-columns:1fr; }
 .bh-checkout-summary { margin-bottom:20px; }
}
