.page-ticketing { --tk-accent:#bde4f5; --tk-muted:#aaa6b1; --tk-border:rgba(230,233,246,.14); }
.page-ticketing .site-footer { margin-top:80px; }
.tk-shell { width:min(1220px,calc(100% - 64px)); margin:0 auto; padding:160px 0 40px; font-family:var(--font-sans); }
.tk-price-summary { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin:0 0 28px; }
.tk-price-summary article { padding:24px; border:1px solid var(--tk-border); border-radius:12px; background:#111016; }
.tk-price-summary span { font:500 20px/1.2 var(--font-display); }
.tk-price-summary p { display:flex; align-items:baseline; gap:12px; margin:20px 0 8px; }
.tk-price-summary strong { color:#eef0f4; font:500 38px/1 var(--font-display); }
.tk-price-summary del { color:#85808b; font-size:15px; }
.tk-price-summary small { color:var(--tk-muted); font-size:10px; }
.tk-shell *, .tk-admin-section * { min-width:0; }
.tk-shell [hidden] { display:none!important; }
.tk-preview-result { margin:25px 0 40px; padding:28px; scroll-margin-top:120px; }
.tk-preview-result .tk-ticket-data { padding:25px 0; }
.tk-preview-result:focus { outline:2px solid var(--tk-accent); outline-offset:4px; }
#booking-form { scroll-margin-top:120px; }
.tk-slot-controls { padding:0; margin:0; border:0; }
.tk-shell h1,.tk-shell h2,.tk-shell h3 { font-family:var(--font-display); font-weight:450; text-transform:none; letter-spacing:-.035em; line-height:1.02; overflow-wrap:anywhere; }
.tk-shell h1 { font-size:clamp(2.8rem,5.1vw,5rem); margin:20px 0; }
.tk-shell h2 { font-size:clamp(2rem,3.2vw,3.2rem); margin:0; }
.tk-shell h3 { font-size:clamp(1.65rem,2.4vw,2.15rem); margin:0 0 15px; }
.tk-shell :is(h1,h2,h3) em { font-weight:400; color:var(--tk-accent); }
.tk-shell p { line-height:1.7; color:var(--tk-muted); }
.tk-eyebrow { display:flex; align-items:center; gap:10px; font:500 10px/1.7 var(--font-sans); letter-spacing:.17em; color:var(--tk-muted); }
.tk-eyebrow i { width:6px; height:6px; flex:none; background:var(--tk-accent); border-radius:50%; box-shadow:0 0 15px #8bc9ed66; }
.tk-hero { display:grid; grid-template-columns:1.55fr 1fr; align-items:center; gap:48px; padding:10px 0 75px; border-bottom:1px solid var(--tk-border); }
.tk-hero-copy>p:not(.tk-eyebrow) { max-width:460px; font-size:15px; }
.tk-hero-meta { display:flex; flex-wrap:wrap; gap:18px; margin-top:30px; color:#898692; font-size:11px; }
.tk-pass-art { min-height:340px; display:grid; place-items:center; position:relative; }
.tk-orbit { position:absolute; width:310px; height:310px; border:1px solid #bde4f526; border-radius:50%; transform:rotateX(55deg) rotateZ(-22deg); }
.tk-art-pass { width:250px; padding:24px; position:relative; background:linear-gradient(145deg,#a5d7e8,#d8e4e7 60%,#b6bfd4); color:#162831; border:1px solid #e7f1f1; box-shadow:12px 22px 0 #18222c,0 35px 65px #0005; transform:rotate(8deg); animation:tk-pass-in .9s cubic-bezier(.2,.8,.2,1) both; }
.tk-art-pass>span { font-size:8px; letter-spacing:.22em; }
.tk-art-pass>strong { display:block; font:500 44px/.95 var(--font-display); margin:44px 0 26px; letter-spacing:-.04em; }
.tk-art-pass>strong em { font-size:39px; font-weight:400; }
.tk-art-perf { border-top:1px dashed #38586380; margin-inline:-24px; }
.tk-art-pass>small { display:flex; justify-content:space-between; align-items:center; margin-top:22px; font-size:7px; letter-spacing:.15em; }
.tk-art-pass>small b { font-size:20px; }
.tk-art-caption { position:absolute; bottom:0; font-size:7px; letter-spacing:.2em; color:#777880; }
@keyframes tk-pass-in { from { opacity:0; transform:translateY(24px) rotate(-5deg); } to { opacity:1; transform:rotate(8deg); } }
.tk-heading-row { display:flex; align-items:end; justify-content:space-between; flex-wrap:wrap; gap:20px; margin:48px 0 30px; }
.tk-heading-row .tk-eyebrow { margin-bottom:12px; }
.tk-link { display:inline-flex; align-items:center; min-height:44px; gap:8px; background:none; border:0; padding:0; color:var(--tk-accent); font-size:12px; line-height:1.6; text-decoration:underline; text-decoration-color:#bde4f540; text-underline-offset:5px; }
.tk-link:hover { text-decoration-color:var(--tk-accent); }
.tk-panel { border:1px solid var(--tk-border); border-radius:16px; background:linear-gradient(135deg,#14131a,#0e0d13); }
.tk-checkout { display:grid; grid-template-columns:minmax(0,1fr) 330px; align-items:start; gap:24px; }
.tk-steps { display:grid; gap:26px; }
.tk-step { padding:28px; margin:0; }
.tk-step legend { padding:0 10px 0 0; font-size:16px; font-weight:500; color:#efedf4; }
.tk-step legend>span { display:inline-grid; place-items:center; width:28px; height:28px; margin-right:8px; color:var(--tk-accent); background:#19252e; border:1px solid #36434d; border-radius:50%; font-size:10px; }
.tk-subtle,.tk-shell .tk-subtle { color:var(--tk-muted); font-size:12px; line-height:1.75; }
.tk-ticket-options { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr)); gap:12px; margin:24px 0; }
.tk-ticket-option { display:block; position:relative; }
.tk-ticket-option>input { position:absolute; top:24px; right:23px; width:18px; height:18px; accent-color:#bde4f5; }
.tk-choice { display:flex; height:100%; flex-direction:column; padding:22px; border:1px solid #34313e; border-radius:10px; background:#ffffff03; transition:border-color .2s,background .2s,transform .2s; }
.tk-option-top { display:flex; align-items:center; gap:15px; margin-bottom:14px; padding-right:30px; }
.tk-option-top b { font-size:16px; font-weight:500; }
.tk-option-top i { display:none; }
.tk-option-desc { display:block; font-size:12px; line-height:1.7; color:var(--tk-muted); margin-bottom:22px; }
.tk-choice>strong { display:block; margin-top:auto; font-size:20px; font-weight:500; color:#d8e9f0; }
.tk-choice>strong del { margin-left:7px; color:#827d88; font-size:13px; font-weight:400; }
.tk-choice>small { display:block; margin-top:6px; font-size:9px; color:#93909b; }
.tk-ticket-option>input:checked+.tk-choice { border-color:#bde4f5; background:#bde4f50a; }
.tk-ticket-option:focus-within .tk-choice { outline:2px solid var(--tk-accent); outline-offset:3px; }
.tk-ticket-option:not(.tk-unavailable):hover .tk-choice { border-color:#91b7c8; }
.tk-unavailable .tk-choice { border-style:dashed; }
.tk-unavailable input { opacity:.4; }
.tk-guests { display:flex; align-items:center; justify-content:space-between; gap:18px; border-top:1px solid var(--tk-border); padding-top:24px; }
.tk-guests>label { font-size:13px; line-height:1.5; }
.tk-guests small { display:block; color:#888692; font-size:10px; margin-top:4px; }
.tk-stepper { display:flex; flex:none; align-items:center; border:1px solid #403b48; border-radius:9px; overflow:hidden; }
.tk-stepper :is(button,input) { width:42px; height:46px; padding:0; background:#ffffff05; border:0; text-align:center; color:#e9e7ec; }
.tk-stepper button { font-size:22px; }
.tk-stepper input { font-size:15px; appearance:textfield; -moz-appearance:textfield; }
.tk-stepper input::-webkit-inner-spin-button,.tk-stepper input::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }
.tk-stepper button:hover { background:#bde4f522; }
.tk-field { display:flex; flex-direction:column; gap:8px; font-size:12px; line-height:1.5; color:#d6d2dc; }
.tk-field :is(input,select,textarea) { width:100%; min-width:0; min-height:48px; padding:12px 14px; border:1px solid #393541; border-radius:8px; background:#0a0a0f; color:#f0edf5; font:400 16px/1.4 var(--font-sans); }
.tk-field input::placeholder { color:#777380; font-size:13px; }
.tk-field input[readonly] { color:#93909d; }
.tk-field :is(input,select,textarea):focus { outline:2px solid var(--tk-accent); outline-offset:2px; }
.tk-field select { text-overflow:ellipsis; }
.tk-field-hint { font-size:10px; line-height:1.6; color:#9995a2; }
.tk-form-grid,.tk-payment-form { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:22px; }
.tk-password { position:relative; }
.tk-password input { padding-right:65px; }
.tk-password button { position:absolute; top:1px; right:4px; bottom:1px; padding:0 12px; border:0; color:var(--tk-accent); font-size:11px; background:transparent; }
.tk-form-stack { display:grid; gap:19px; }
.tk-form-stack h3 { margin:0 0 10px; }
.tk-signed-in { display:flex; gap:14px; align-items:center; flex-wrap:wrap; padding-block:18px; }
.tk-avatar { width:45px; height:45px; border-radius:50%; display:grid; place-items:center; background:#d0e5f0; color:#1e2c38; font:25px var(--font-display); }
.tk-signed-in>div { display:grid; gap:5px; flex:1; overflow-wrap:anywhere; }
.tk-signed-in span:not(.tk-avatar),.tk-signed-in small { font-size:11px; color:var(--tk-muted); }
.tk-wallet-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-block:22px; }
.tk-wallet { position:relative; }
.tk-wallet input { position:absolute; top:12px; right:10px; accent-color:var(--tk-accent); }
.tk-wallet>span,.tk-wallet-preview>span { display:block; height:100%; padding:18px 12px; border:1px solid #3a3344; border-radius:8px; font-size:15px; padding-right:30px; overflow-wrap:anywhere; }
.tk-wallet input:checked+span { border-color:var(--tk-accent); background:#bde4f511; }
.tk-wallet input:focus-visible+span { outline:2px solid var(--tk-accent); outline-offset:3px; }
.tk-wallet-options small { display:block; margin-top:7px; font-size:9px; line-height:1.6; color:#9893a1; }
.tk-wallet-preview>span { padding-right:12px; border-style:dashed; }
.tk-consent { display:flex; gap:12px; align-items:start; margin-top:28px; font-size:11px; line-height:1.8; color:#c7c2cf; }
.tk-consent input { flex:none; width:18px; height:18px; margin:3px 0 0; accent-color:var(--tk-accent); }
.tk-terms { margin-top:22px; border-top:1px solid var(--tk-border); padding-top:12px; }
.tk-terms summary { min-height:44px; align-content:center; font-size:12px; color:var(--tk-accent); cursor:pointer; }
.tk-terms p { font-size:12px; }
.tk-order { position:sticky; top:116px; }
.tk-order-inner { padding:28px; }
.tk-order h2 { font-size:36px; margin:20px 0 28px; }
.tk-order dl { margin:0; }
.tk-order dl>div { display:flex; justify-content:space-between; align-items:start; gap:20px; padding-block:14px; border-bottom:1px solid var(--tk-border); }
.tk-order dt { font-size:11px; color:#a49eae; }
.tk-order dd { max-width:65%; margin:0; font-size:12px; line-height:1.6; text-align:right; }
.tk-order .tk-order-total { align-items:center; padding-block:24px; }
.tk-order-total dd { font-size:25px; color:var(--tk-accent); }
.tk-button { display:inline-flex; align-items:center; justify-content:center; gap:14px; min-height:48px; border:1px solid transparent; border-radius:8px; padding:13px 22px; font:500 12px/1.5 var(--font-sans); text-align:center; transition:background .2s,transform .2s; }
.tk-button:hover:not(:disabled) { transform:translateY(-2px); }
.tk-primary { color:#132631; background:#c4e3ef; }
.tk-primary:hover:not(:disabled) { background:#e0f0f6; }
.tk-secondary { border-color:#4a424f; background:#ffffff05; color:#e7e1eb; }
.tk-button:focus-visible,.tk-shell summary:focus-visible,.tk-link:focus-visible { outline:2px solid var(--tk-accent); outline-offset:4px; }
.tk-button:disabled { background:#2a2731; color:#8b8692; cursor:not-allowed; }
.tk-order .tk-button { width:100%; margin-top:15px; }
.tk-order-foot { display:block; text-align:center; font-size:10px; color:#9a94a2; line-height:1.7; margin-top:16px; }
.tk-order-help { display:block; text-align:center; font-size:11px; color:#aea7b7; padding:20px 0; }
.tk-mini-portal { position:relative; display:grid; place-items:center; height:85px; overflow:hidden; margin-top:18px; background:radial-gradient(ellipse at center,#81cee81a,transparent 70%); }
.tk-mini-portal i { position:absolute; width:80px; height:80px; border:1px solid #bde4f544; transform:rotate(45deg); }
.tk-mini-portal i:nth-child(2) { width:55px; height:55px; border-color:#bde4f577; }
.tk-mini-portal i:nth-child(3) { width:30px; height:30px; border-color:#d6f2ffbb; }
.tk-alert { padding:18px 22px; margin-bottom:26px; border:1px solid #64748255; border-radius:10px; background:#23303d55; color:#c2d8e4; font:12px/1.8 var(--font-sans); overflow-wrap:anywhere; }
.tk-alert b { color:#e7eef4; }
.tk-error { border-color:#ea958666; color:#ffc8bc; background:#a54b3015; }
.tk-error-text { color:#ffc8bc!important; }
.tk-success { border-color:#8ad4b155; background:#39745516; color:#b3e3cd; }
.tk-availability { margin-bottom:0; font-size:11px; }
.tk-empty-inline { padding:20px 0; font-size:12px; line-height:1.8; color:#a59fae; }
.tk-auth-layout { display:grid; grid-template-columns:1.2fr 1fr; gap:10%; align-items:center; min-height:85svh; }
.tk-auth-copy p { max-width:400px; }
.tk-auth-copy .tk-mini-portal { width:200px; height:140px; margin-top:40px; }
.tk-auth-panel { padding:36px; }
.tk-auth-panel h2 { margin:16px 0 32px; }
.tk-auth-links { display:grid; gap:4px; margin-top:24px; font-size:12px; }
.tk-auth-links a { min-height:44px; align-content:center; color:var(--tk-accent); }
.tk-dashboard { padding-top:170px; }
.tk-dash-head { display:flex; align-items:center; justify-content:space-between; gap:30px; margin-bottom:40px; }
.tk-dash-head h1 { margin-block:18px 12px; }
.tk-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px; }
.tk-actions form { margin:0; }
.tk-recovery { display:flex; align-items:center; flex-wrap:wrap; gap:26px; padding:28px; margin-bottom:28px; border-color:#bde4f533; }
.tk-recovery>div { flex:1; min-width:min(300px,100%); }
.tk-recovery h2 { font-size:32px; }
.tk-recovery p:not(.tk-eyebrow) { font-size:12px; }
.tk-recovery code { display:block; color:#d2e8f1; font-size:13px; line-height:1.8; word-break:break-all; padding:13px; background:#bde4f509; border:1px dashed #bde4f544; border-radius:6px; }
.tk-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-block:1px solid var(--tk-border); margin:32px 0; }
.tk-stats article { padding:26px; border-right:1px solid var(--tk-border); }
.tk-stats article:last-child { border:0; }
.tk-stats span { display:block; color:#96909f; font-size:11px; }
.tk-stats strong { display:block; margin-top:16px; font:48px/.9 var(--font-display); }
.tk-dash-nav { display:flex; flex-wrap:wrap; gap:28px; padding-block:10px; border-bottom:1px solid var(--tk-border); }
.tk-dash-nav a { min-height:44px; align-content:center; font-size:12px; color:#b4cbd7; }
.tk-dash-nav a:last-child { margin-left:auto; }
.tk-filter { flex-direction:row; align-items:center; }
.tk-filter select { min-height:42px; font-size:12px; }
.tk-booking-list { display:grid; gap:22px; }
.tk-booking { padding:25px; overflow:hidden; }
.tk-booking-top { display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; align-items:center; padding-bottom:20px; }
.tk-status { display:inline-flex; align-items:center; border:1px solid #84708f66; background:#a48cb30c; border-radius:40px; padding:7px 12px; color:#cdc1dc; font:10px/1.5 var(--font-sans); }
.tk-status-paid { border-color:#80c8a855; color:#b2e4d0; background:#83d5b111; }
.tk-status-submitted { border-color:#c1a96966; color:#e6d7ad; background:#d4bd8011; }
.tk-status-rejected { border-color:#d8897766; color:#f0b4a9; }
.tk-ref { font:10px/1.5 var(--font-sans); color:#96909f; letter-spacing:.08em; }
.tk-booking-main { display:flex; align-items:center; gap:24px; }
.tk-date-block { display:grid; place-items:center; align-content:center; gap:5px; width:76px; height:98px; flex:none; border:1px solid #bde4f526; border-radius:9px; background:#bde4f506; }
.tk-date-block span { font-size:9px; text-transform:uppercase; letter-spacing:.14em; color:var(--tk-accent); }
.tk-date-block strong { font:36px/1 var(--font-display); }
.tk-date-block small { font-size:9px; color:#898392; }
.tk-booking-info { flex:1; }
.tk-booking-info h3 { margin:0 0 8px; }
.tk-booking-info p { margin:0 0 7px; font-size:12px; }
.tk-booking-info>span { font-size:11px; color:#928c9a; }
.tk-payment-box { border-top:1px solid var(--tk-border); margin-top:24px; }
.tk-payment-box>summary { display:flex; justify-content:space-between; gap:20px; align-items:center; padding-top:18px; min-height:52px; color:var(--tk-accent); font-size:12px; cursor:pointer; list-style:none; }
.tk-payment-box>summary::-webkit-details-marker { display:none; }
.tk-payment-box[open]>summary span { transform:rotate(45deg); }
.tk-payment-content { padding-top:10px; }
.tk-pay-destination { display:flex; flex-wrap:wrap; align-items:center; gap:20px; background:#bde4f50b; border:1px dashed #bde4f54a; border-radius:8px; padding:18px; }
.tk-pay-destination span { color:var(--tk-accent); font-size:12px; }
.tk-pay-destination strong { font-size:20px; overflow-wrap:anywhere; }
.tk-instructions { font-size:12px; }
.tk-payment-form .tk-button { grid-column:1/-1; justify-self:start; }
.tk-cancel-form { padding-top:18px; }
.tk-booking-note { border-top:1px solid var(--tk-border); margin-top:22px; padding-top:17px; color:#ada5b7; font-size:12px; line-height:1.8; }
.tk-booking-note .tk-link { font-size:11px; }
.tk-empty { text-align:center; padding:70px 25px; }
.tk-empty>span { display:block; margin-bottom:20px; font-size:35px; color:var(--tk-accent); }
.tk-empty .tk-eyebrow { justify-content:center; }
.tk-empty .tk-button { margin-top:18px; }
.tk-account { margin-top:80px; }
.tk-account-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.tk-account-grid>.tk-panel { padding:30px; }
.tk-ticket-page { max-width:880px; }
.tk-admission { margin:24px 0; border-radius:16px; overflow:hidden; }
.tk-admission>header { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:20px; padding:24px 35px; border-bottom:1px solid var(--tk-border); }
.tk-admission-title { padding:35px 35px 10px; }
.tk-admission-title>p:first-child { color:var(--tk-accent); font-size:9px; letter-spacing:.15em; }
.tk-admission h1 { font-size:clamp(2.5rem,5vw,4.2rem); }
.tk-admission-title>p { font-size:13px; }
.tk-ticket-data { display:grid; grid-template-columns:1fr 1fr; gap:26px; padding:20px 35px 40px; margin:0; }
.tk-ticket-data dt { font-size:10px; text-transform:uppercase; letter-spacing:.1em; color:#8b8397; }
.tk-ticket-data dd { margin:9px 0 0; font-size:14px; line-height:1.7; }
.tk-ticket-stub { padding:30px 35px; border-top:1px dashed #bde4f555; background:#bde4f507; }
.tk-ticket-stub>span { color:#978fa1; font-size:9px; letter-spacing:.18em; }
.tk-ticket-stub>strong { display:block; font:clamp(1.35rem,3vw,2rem)/1.8 var(--font-sans); letter-spacing:.1em; color:var(--tk-accent); word-break:break-all; }
.tk-ticket-stub p { font-size:12px; max-width:560px; }
.tk-shell :is(#my-tickets,#account) { scroll-margin-top:120px; }
.tk-admin-section { margin-top:55px; scroll-margin-top:20px; }
.tk-admin-section>h2 { font-size:25px; }
.tk-admin-section .admin-empty { line-height:1.8; }
.tk-admin-stats { grid-template-columns:repeat(3,minmax(0,1fr)); }
.tk-admin-stats strong { overflow-wrap:anywhere; font-size:clamp(1.4rem,2.6vw,2.5rem); }
.tk-admin-nav { display:flex; flex-wrap:wrap; gap:10px 25px; padding-block:15px; border-bottom:1px solid var(--line); }
.tk-admin-nav a { font-size:12px; min-height:44px; align-content:center; color:#b9dbe9; }
.tk-admin-editor-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; align-items:start; }
.tk-admin-editor { padding:25px; }
.tk-admin-editor>summary { min-height:44px; align-content:center; cursor:pointer; font-size:13px; line-height:1.6; }
.tk-admin-editor[open]>summary { margin-bottom:15px; }
.tk-admin-editor h3 { margin:0; font-size:18px; }
.tk-admin-remove { margin-top:16px; }
.tk-admin-section .admin-form-actions { flex-wrap:wrap; }
.tk-admin-section .admin-form input,.tk-admin-section .admin-form select { min-height:44px; }
.tk-admin-booking>summary { display:flex; align-items:center; flex-wrap:wrap; gap:15px; cursor:pointer; min-height:44px; font-size:12px; }
.tk-admin-booking>summary em { margin-left:auto; color:#a4d6e9; font-size:11px; font-style:normal; }
.tk-admin-booking-body { border-top:1px solid var(--line); margin-top:15px; padding-top:15px; font-size:13px; line-height:1.7; overflow-wrap:anywhere; }
.tk-admin-payment { display:grid; gap:8px; padding:16px; border:1px dashed #91bfcd55; border-radius:8px; margin-block:20px; }
.tk-admin-payment span { font-size:12px; color:#aaa2b6; }
.tk-admin-actions { margin-top:20px; }
.tk-admin-audit { margin-top:24px; color:#9f97aa; font-size:11px; }
.tk-admin-audit summary { min-height:44px; align-content:center; cursor:pointer; }
.tk-admin-success { border-color:#82b79b77; color:#b5e5cf; background:#83c6a311; }
@media(max-width:1000px) { .tk-checkout { grid-template-columns:minmax(0,1fr) 290px; gap:18px; } .tk-step,.tk-order-inner { padding:22px; } .tk-hero { gap:20px; } .tk-wallet-options { grid-template-columns:1fr; } .tk-wallet>span { padding:14px; } .tk-wallet-options small { margin-top:4px; } }
@media(max-width:800px) { .tk-shell { width:calc(100% - 40px); padding-top:125px; } .tk-hero { grid-template-columns:1fr; padding-bottom:50px; } .tk-pass-art { display:none; } .tk-checkout { grid-template-columns:1fr; } .tk-order { position:relative; top:auto; } .tk-order-inner { padding:28px; } .tk-order .tk-mini-portal { display:none; } .tk-order h2 { font-size:30px; } .tk-wallet-options { grid-template-columns:repeat(3,minmax(0,1fr)); } .tk-auth-layout { grid-template-columns:1fr; gap:35px; } .tk-auth-copy .tk-mini-portal { display:none; } .tk-auth-panel { max-width:600px; } .tk-dash-head { align-items:start; flex-direction:column; } .tk-booking-main { flex-wrap:wrap; gap:18px; } .tk-booking-main>.tk-button { margin-left:94px; } .tk-account-grid { grid-template-columns:1fr; } .tk-admin-editor-grid { grid-template-columns:1fr; } }
@media(max-width:480px) { .tk-shell { width:calc(100% - 28px); padding-top:110px; } .tk-shell h1 { font-size:clamp(2.5rem,10.5vw,3.2rem); } .tk-heading-row { margin-top:35px; } .tk-hero-meta { display:grid; gap:12px; } .tk-step { padding:20px 16px; } .tk-step legend { font-size:14px; } .tk-form-grid,.tk-payment-form { grid-template-columns:1fr; } .tk-guests { flex-wrap:wrap; } .tk-wallet-options { gap:6px; } .tk-wallet>span { padding:30px 10px 12px; font-size:14px; } .tk-wallet-preview>span { padding:14px 9px; font-size:13px; } .tk-wallet input { top:9px; right:9px; } .tk-wallet-options small { font-size:8px; } .tk-auth-panel { padding:24px 20px; } .tk-stats article { padding:22px 12px; } .tk-stats span { font-size:10px; line-height:1.7; min-height:34px; } .tk-stats strong { font-size:38px; } .tk-booking { padding:20px 16px; } .tk-booking-top { gap:9px; } .tk-booking-main { gap:15px; } .tk-date-block { width:59px; height:85px; } .tk-booking-main>.tk-button { width:100%; margin:0; } .tk-booking-info p { font-size:11px; } .tk-booking-info h3 { font-size:25px; } .tk-booking-info>span { line-height:1.8; } .tk-account-grid>.tk-panel,.tk-recovery { padding:24px 20px; } .tk-dash-nav { gap:20px; } .tk-dash-nav a:last-child { margin:0; } .tk-ticket-data { grid-template-columns:1fr; gap:20px; } .tk-admission>header,.tk-admission-title,.tk-ticket-data,.tk-ticket-stub { padding-inline:22px; } .tk-ticket-page .tk-actions>* { width:100%; } .tk-admin-stats { grid-template-columns:1fr; } .tk-admin-section .admin-inline-form { flex-wrap:wrap; } .tk-admin-booking>summary em { margin:0; } }
@media(prefers-reduced-motion:reduce) { .tk-art-pass { animation:none; } .tk-shell * { scroll-behavior:auto!important; transition:none!important; } .tk-button:hover { transform:none!important; } }
@media print { @page { size:A4; margin:14mm; } html,body,.page-ticketing { background:white!important; color:#15232d!important; overflow:visible!important; } .site-header,.site-footer,.chat-widget,.ambient,.motion-cursor,.skip-link,.tk-no-print { display:none!important; } .tk-shell { width:100%; padding:0; } .tk-admission { border:1px solid #999; background:white; color:#15232d; box-shadow:none; break-inside:avoid; } .tk-admission * { color:#15232d!important; background:transparent!important; } .tk-admission-title h1 { font-size:36pt; } .tk-admission p,.tk-ticket-data dd { font-size:11pt; } .tk-ticket-data { grid-template-columns:1fr 1fr; } .tk-ticket-stub { border-color:#999; } }

/* Compact booking flow */
.tk-book-hero {
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:32px;
    padding:10px 0 32px;
    border-bottom:1px solid var(--tk-border);
}
.tk-book-hero h1 { margin:12px 0 0; font-size:clamp(3rem,6vw,5.8rem); line-height:.9; }
.tk-book-hero-note { display:grid; min-width:190px; gap:6px; margin:0; padding:18px 20px; border:1px solid var(--tk-border); border-radius:14px; background:linear-gradient(135deg,#bde4f512,#ffffff03); }
.tk-book-hero-note strong { color:#eef0f4; font-size:24px; line-height:1; }
.tk-book-hero-note span { color:var(--tk-muted); font-size:11px; }
.tk-book-toolbar {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    margin:18px 0 28px;
}
.tk-book-toolbar p { margin:0; font-size:13px; }
.tk-checkout { gap:20px; }
.tk-steps { gap:18px; }
.tk-step { padding:24px; }
.tk-step legend { font-size:18px; }
.tk-ticket-options { margin:18px 0; }
.tk-choice { padding:18px; }
.tk-option-desc {
    display:-webkit-box;
    margin-bottom:16px;
    overflow:hidden;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
}
.tk-field { font-size:14px; }
.tk-field-hint { font-size:12px; }
.tk-form-grid { gap:14px; margin-top:18px; }
.tk-profile-note {
    display:flex;
    align-items:center;
    gap:13px;
    margin:4px 0 18px;
    padding:13px;
    border:1px solid rgba(189,228,245,.14);
    border-radius:11px;
    background:rgba(189,228,245,.045);
}
.tk-profile-note>span {
    display:grid;
    width:38px;
    height:38px;
    flex:0 0 auto;
    place-items:center;
    border-radius:10px;
    color:#132631;
    background:var(--tk-accent);
}
.tk-profile-note .ui-icon { width:18px; height:18px; }
.tk-profile-note div { display:grid; gap:3px; }
.tk-profile-note b { font-size:14px; font-weight:600; }
.tk-profile-note small { color:var(--tk-muted); font-size:12px; line-height:1.45; }
.tk-personal-step .tk-signed-in { padding:6px 0; }
.tk-preview-privacy {
    display:flex;
    align-items:center;
    gap:8px;
    margin:14px 0 0;
    color:#918b99!important;
    font-size:12px;
}
.tk-preview-privacy .ui-icon { width:15px; height:15px; flex:0 0 auto; color:var(--tk-accent); }
.tk-wallet-options { margin-block:16px; }
.tk-consent { margin-top:20px; font-size:13px; line-height:1.55; }
.tk-terms { margin-top:15px; }
.tk-order-inner { padding:24px; }
.tk-order-inner>.tk-eyebrow { margin-bottom:8px; }
.tk-order dl>div { padding-block:13px; }
.tk-order dt,.tk-order dd { font-size:13px; }
.tk-order .tk-subtle { margin:16px 0 0; font-size:12px; }
.tk-order-help { padding:15px 0; font-size:12px; }
.tk-profile-state {
    display:inline-flex;
    align-items:center;
    gap:8px;
    margin:8px 0 0;
    padding:8px 12px;
    border:1px solid #d9bd7360;
    border-radius:999px;
    color:#e2cf9d!important;
    background:#d9bd730d;
    font-size:12px;
}
.tk-profile-state i { width:7px; height:7px; border-radius:50%; background:#d8b961; box-shadow:0 0 12px #d8b988; }
.tk-profile-state.is-active { border-color:#80c8a855; color:#b2e4d0!important; background:#83d5b111; }
.tk-profile-state.is-active i { background:#72d3aa; box-shadow:0 0 12px #72d3aaaa; }

@media(max-width:800px) {
    .tk-book-hero { align-items:flex-start; flex-direction:column; gap:24px; }
    .tk-book-hero-note { min-width:0; width:100%; }
}
@media(max-width:480px) {
    .tk-price-summary { grid-template-columns:1fr; }
    .tk-book-hero { padding-bottom:24px; }
    .tk-book-toolbar { align-items:flex-start; flex-direction:column; margin-bottom:22px; }
    .tk-step { padding:19px 16px; }
    .tk-profile-note { align-items:flex-start; }
}

/* Prevent display text from being cropped inside ticket panels. */
.tk-shell :is(h1, h2, h3) {
    overflow: visible;
    padding-block: .04em .07em;
    line-height: 1.06;
    overflow-wrap: break-word;
    word-break: normal;
}

.tk-book-hero h1 { line-height: 1; }
.tk-button { line-height: 1.35; }
