/* Compact event identity, calm ticket preview and two explicit booking modes. */
.public-site .booking-page{max-width:1160px;padding-top:30px;padding-bottom:64px}
.booking-header{display:grid;grid-template-columns:1fr .92fr;gap:52px;align-items:center;margin:0 0 36px}
.booking-heading{min-width:0}.booking-heading>.eyebrow{margin:24px 0 10px}
.public-site .booking-heading h1{font-size:clamp(1.7rem,3vw,2.65rem);line-height:1.12;letter-spacing:-.04em;margin:0 0 18px;max-width:620px;text-wrap:pretty;overflow-wrap:anywhere}
.public-site .booking-when{font-weight:700;margin:0;font-size:.95rem}.public-site .booking-where{margin:2px 0;font-size:.9rem;color:#655c62}.public-site .booking-promise{margin:16px 0 0;font-size:.85rem;color:#6b203d}
.booking-preview{margin:0;min-width:0;background:white;border:1px solid #e0d6db;border-radius:14px;box-shadow:0 16px 40px #42213312;overflow:hidden;transform:rotate(1deg)}
.booking-preview-brand{background:#6b203d;color:white;padding:10px 14px;display:flex;justify-content:space-between;gap:8px;font-size:.56rem;letter-spacing:.04em}.booking-preview-brand b{letter-spacing:.13em}
.booking-preview-face{display:grid;grid-template-columns:90px 1fr 55px;gap:14px;padding:16px 14px;align-items:stretch}.booking-preview-face>img{width:90px;height:118px;object-fit:cover;border-radius:5px}.booking-preview-face>div{min-width:0;display:flex;flex-direction:column;gap:8px}.booking-preview-face small{font-size:.45rem;color:#6b203d;letter-spacing:.12em}.booking-preview-face strong{font-size:clamp(.85rem,1.4vw,1.15rem);line-height:1.18;overflow-wrap:anywhere}.booking-preview-face span{font-size:.65rem;line-height:1.4}.booking-preview-face .booking-preview-stub{border-left:1px dashed #c6afb9;display:flex;align-items:center;justify-content:center;text-align:center;color:#6b203d;font-size:.52rem;font-weight:700;letter-spacing:.08em;padding-left:8px}
.booking-preview .booking-preview-banner{display:block;width:100%;height:auto;max-height:68px;object-fit:contain;background:white;border-top:1px solid #f1ebee}.booking-preview figcaption{text-align:center;font-size:.62rem;color:#74676e;background:#faf7f8;padding:5px 10px}
.booking-steps{display:flex;align-items:center;gap:26px;list-style:none;padding:0;margin:0 0 20px;font-size:.83rem;color:#766a70}.booking-steps li{display:flex;align-items:center;gap:9px}.booking-steps b{display:grid;place-items:center;border-radius:50%;width:28px;height:28px;background:#eee8eb;color:#75636d}.booking-steps [aria-current]{color:#6b203d;font-weight:700}.booking-steps [aria-current] b{background:#6b203d;color:white}
.booking-page .panel{border:1px solid #e5dce1;border-radius:18px;padding:26px;box-shadow:none;background:white}.booking-page .booking-selection{margin-bottom:20px}.public-site .booking-page h2{font-size:1.35rem;line-height:1.25;letter-spacing:-.025em;margin:0 0 18px}.booking-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.booking-panel-heading span{font-size:.74rem;color:#73646c;white-space:nowrap}.booking-panel-heading h2{margin-bottom:0!important}.booking-modes{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:22px 0}
.booking-mode{display:grid!important;grid-template-columns:48px 1fr 20px;align-items:center;gap:16px;padding:21px!important;border:1.5px solid #e5dce1;border-radius:12px;cursor:pointer;background:#faf8f9;margin:0!important;color:#48333e;transition:background .16s,border-color .16s}.booking-mode:has(:checked){background:#f4eaf0;border-color:#872d4b;color:#6b203d}.booking-mode:focus-within{outline:3px solid #24597e;outline-offset:3px}.booking-mode>svg{width:48px;height:48px;grid-column:1;grid-row:1}.booking-mode>span{grid-column:2;grid-row:1}.booking-mode strong{display:block;font-size:1rem;line-height:1.3}.booking-mode small{display:block;margin-top:6px;font-size:.76rem;line-height:1.5;color:#71606a}.booking-page .booking-mode>input{grid-column:3;grid-row:1;width:20px;height:20px;min-height:0;margin:0;padding:0;accent-color:#6b203d}
.booking-best-controls{display:grid;grid-template-columns:150px 1fr auto;gap:16px;align-items:end}.booking-best label{margin:0;font-size:.8rem;font-weight:600}.booking-best select{margin-top:6px;min-height:48px;background:#fff}.booking-best .button{min-height:48px;margin:0;white-space:nowrap}.public-site .booking-best>p,.public-site .booking-plan-help{font-size:.79rem;line-height:1.6;color:#6a5f66;margin:15px 0}
.booking-page [hidden]{display:none!important}.booking-page .seat-zoom{margin-top:16px}.booking-page .area-legend{font-size:.8rem;margin:10px 0}.booking-page .booking-seat-list{border-top:1px solid #e6dee2;margin-top:18px;padding-top:16px}.booking-seat-list>summary{font-size:.9rem;font-weight:650;cursor:pointer;min-height:44px;align-content:center}.booking-seat-list>summary span{font-weight:400;color:#7b6f75;font-size:.75rem;margin-left:12px}.booking-page .seat-list{border:0;padding:12px 0 0;margin:0;max-height:420px;overflow:auto}.booking-page .seat-option{border-radius:10px;padding:12px;gap:10px}.booking-page .seat-option input{width:20px;height:20px;min-height:0}.booking-page .seat-option b{font-size:.8rem}.booking-page .seat-option strong{font-size:.82rem}.booking-page .seat-option small{font-size:.7rem}
.public-site .booking-feedback{font-size:.87rem;line-height:1.5;margin:14px 0 10px;color:#285b47}.booking-feedback:empty{display:none}.booking-feedback.is-error{color:#9c2536;background:#fff0f1;padding:12px;border-radius:8px}.booking-selected{display:flex;flex-wrap:wrap;gap:7px}.booking-seat-chip{border:1px solid #d5c1cc;background:#f7f0f4;color:#6b203d;border-radius:8px;padding:10px 13px;font-family:inherit;font-weight:500;font-size:.77rem;line-height:1.4;min-height:44px;cursor:pointer;max-width:100%;text-align:left;overflow-wrap:anywhere}.booking-seat-chip:focus-visible{outline:3px solid #24597e;outline-offset:2px}
.public-site .booking-total{font-size:1.1rem;font-weight:750;padding-top:20px;margin:20px 0 0;border-top:1px solid #eee6eb;color:#6b203d}.public-site .booking-reservation-note{font-size:.74rem;color:#71636b;margin:5px 0 0;line-height:1.6}.booking-details{align-items:start;gap:20px}.booking-details label{font-size:.84rem;margin-bottom:16px}.booking-details input:not([type=radio]){min-height:48px;margin-top:6px}.public-site .booking-details p{font-size:.81rem;line-height:1.6}.booking-page .payment-choice{padding:14px;border-radius:10px}.booking-page .payment-choice strong{font-size:.85rem}.booking-page .payment-choice small{font-size:.76rem}.booking-page .payment-choice input{width:20px;height:20px;min-height:0}.booking-page .payment-choices legend{font-size:.8rem}.booking-page [data-payment-continue]{width:100%;justify-content:center;margin-top:12px}
@media(max-width:850px){.booking-header{gap:28px;grid-template-columns:1fr 1fr}.booking-preview-face{grid-template-columns:65px 1fr;gap:10px}.booking-preview-face>img{width:65px;height:100px}.booking-preview-face .booking-preview-stub{display:none}.booking-mode{padding:16px!important;gap:11px;grid-template-columns:38px 1fr 20px}.booking-mode svg{width:38px;height:38px}.booking-best-controls{grid-template-columns:110px 1fr}.booking-best-controls .button{grid-column:1/-1}.booking-page .panel{padding:21px}}
@media(max-width:600px){.public-site .booking-page{padding-top:22px}.booking-header{grid-template-columns:1fr;gap:20px;margin-bottom:26px}.booking-heading>.eyebrow{margin-top:18px}.public-site .booking-heading h1{font-size:1.8rem;margin-bottom:13px}.booking-preview{transform:none;max-width:460px;width:100%;margin-inline:auto}.booking-preview-face{grid-template-columns:68px 1fr 48px;padding:12px;gap:12px}.booking-preview-face>img{width:68px;height:80px}.booking-preview-face strong{font-size:.9rem}.booking-preview-face>div{gap:5px}.booking-preview-face .booking-preview-stub{display:flex}.booking-preview .booking-preview-banner{max-height:45px}.booking-preview-brand{font-size:.48rem;padding:8px 12px}.booking-preview figcaption{font-size:.55rem}.booking-promise{display:none}.booking-steps{gap:18px;font-size:.7rem}.booking-steps b{width:24px;height:24px}.booking-page .panel{padding:18px 15px;border-radius:14px}.booking-modes{gap:9px;margin:18px 0}.booking-mode{padding:14px 11px!important;grid-template-columns:1fr 20px;gap:12px}.booking-mode svg{grid-column:1;grid-row:1;width:38px;height:38px}.booking-mode>input{grid-column:2!important;grid-row:1!important}.booking-mode>span{grid-row:2;grid-column:1/-1}.booking-mode strong{font-size:.85rem}.booking-mode small{font-size:.71rem}.booking-mode small br{display:none}.booking-panel-heading{align-items:start}.booking-panel-heading span{font-size:.63rem;margin-top:4px}.public-site .booking-page h2{font-size:1.2rem}.booking-best-controls{grid-template-columns:92px 1fr;gap:10px}.booking-best select{font-size:.85rem;padding:12px 8px}.booking-seat-list>summary span{display:block;margin:4px 0 8px 18px}.booking-details{grid-template-columns:1fr}.booking-page .seat-list{grid-template-columns:1fr}.booking-page .seat-option{padding:10px}.booking-page .seat-zoom-hint{font-size:.7rem}.booking-page .seat-zoom-tools{gap:5px}.booking-page .seat-zoom-button{padding:7px 9px}.booking-page .seat-zoom-button[title="Saalplan mit der Maus verschieben"]{display:none}}
@media(prefers-reduced-motion:reduce){.booking-mode{transition:none}}
@media(max-width:800px){.public-site:has(.booking-page) .mobile-dock{display:none}.public-site:has(.booking-page) .accessibility-launcher{bottom:calc(16px + env(safe-area-inset-bottom,0px))}}
.public-site .booking-page{width:calc(100% - 40px);padding-inline:0}
@media(max-width:850px){.booking-preview{transform:none}}
@media(max-width:380px){.public-site .booking-page{width:calc(100% - 28px)}}
.booking-mode small{font-weight:400}.booking-page .payment-choice small{font-weight:400}

/* 1.9.3: carry the event/ticket identity through the final payment page. */
.public-site .order-page{width:calc(100% - 40px);max-width:1160px;margin-inline:auto;padding:30px 0 64px}
.order-page .booking-header{margin-bottom:28px}.public-site .order-reference{font-size:.78rem;color:#74636d;margin:16px 0 0;overflow-wrap:anywhere}
.order-page>.panel{border:1px solid #e5dce1;border-radius:18px;padding:26px;background:#fff;box-shadow:none}
.public-site .order-page>.panel>h2,.public-site .order-information>h2{font-size:1.35rem;line-height:1.25;letter-spacing:-.025em;margin:0 0 16px}
.public-site .order-total{font-size:1.1rem;margin:15px 0 4px}.order-total b{color:#6b203d}.public-site .order-bookmark{font-size:.82rem;color:#73646c;line-height:1.6;margin:0 0 22px}
.order-payment form{margin:12px 0}.order-payment .button{min-height:48px}.public-site .order-payment p{font-size:.9rem;line-height:1.65}.public-site .order-provider{font-size:.8rem;color:#74636d;max-width:680px;margin:12px 0}
.order-information{margin-top:26px}.public-site .order-information>p,.order-information details{font-size:.84rem}.order-information details{margin:10px 0}.order-information summary{min-height:40px;align-content:center;cursor:pointer}.order-information h2{margin-top:24px!important}
@media(max-width:600px){.public-site .order-page{padding-top:22px}.order-page>.panel{padding:20px 16px;border-radius:14px}.order-page .booking-header{margin-bottom:20px}.order-payment .button{width:100%;justify-content:center}.public-site .order-page>.panel>h2,.public-site .order-information>h2{font-size:1.2rem}.order-page .ticket-summary{grid-template-columns:1fr;gap:3px}.order-page .ticket-summary dd{margin-bottom:12px;overflow-wrap:anywhere}}
@media(max-width:380px){.public-site .order-page{width:calc(100% - 28px)}}
@media(max-width:800px){.public-site:has(.order-page) .mobile-dock{display:none}.public-site:has(.order-page) .accessibility-launcher{bottom:calc(16px + env(safe-area-inset-bottom,0px))}}
@media print{.public-site .order-page{width:100%;max-width:none;margin:0;padding:0}.order-page .ticket-screen{display:none!important}}
