/* TEBA Ticket Product Mapping Companion v0.2.0 purchase flow. */
:root {
  --hub-ink: #07080b;
  --hub-paper: var(--teba-cream, #f3f0e8);
  --hub-card: rgba(255,255,255,.48);
  --hub-line: rgba(7,8,11,.12);
  --hub-accent: var(--teba-cyan, #08abc6);
  --hub-display: var(--teba-display-font, var(--teba-display, 'Archivo Black', Impact, 'Arial Black', sans-serif));
  --hub-mono: var(--teba-mono, 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);
}
.teba-ticket-page *{box-sizing:border-box;}
.single-product .product:has(.teba-ticket-page)>.summary{display:none!important}.single-product .product:has(.teba-ticket-page){display:block!important}.single-product .product .teba-ticket-page{width:100%;float:none;clear:both}
.teba-ticket-page{min-height:70vh;padding:32px 40px 70px;background:var(--hub-paper);color:#07080b;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;}
.teba-ticket-container{width:min(100%,1360px);margin:0 auto;}
.teba-ticket-steps{display:flex;align-items:center;gap:12px;margin:0 0 28px;color:#777;font-family:var(--hub-mono);font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.teba-ticket-steps span{display:flex;align-items:center;gap:8px}.teba-ticket-steps span:not(:last-child)::after{content:'';width:34px;height:1px;margin-left:4px;background:#d1cec5}.teba-ticket-steps span.is-active,.teba-ticket-steps span.is-complete{color:#07080b}.teba-ticket-steps span::first-letter{color:#fff}.teba-ticket-steps span{min-height:24px}.teba-ticket-steps b{font:inherit}.teba-ticket-steps span.is-active,.teba-ticket-steps span.is-complete{--step:#08abc6}.teba-ticket-steps span{position:relative;padding-left:30px}.teba-ticket-steps span::before{content:attr(data-step);position:absolute;left:0;display:grid;place-items:center;width:22px;height:22px;border:1px solid #bbb;border-radius:50%;color:#777}.teba-ticket-steps span:nth-child(1)::before{content:'1'}.teba-ticket-steps span:nth-child(2)::before{content:'2'}.teba-ticket-steps span:nth-child(3)::before{content:'3'}.teba-ticket-steps span.is-active::before,.teba-ticket-steps span.is-complete::before{border-color:var(--hub-accent);background:var(--hub-accent);color:#fff}
.teba-ticket-back{display:inline-flex;margin:0 0 28px;color:rgba(7,8,11,.58);font-family:var(--hub-mono);font-size:11px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;}
.teba-kicker{display:inline-flex;align-items:center;gap:10px;font-family:var(--hub-mono);font-size:11px;font-weight:900;letter-spacing:.18em;text-transform:uppercase;color:#07080b;}
.teba-kicker::before{content:'';display:block;width:14px;height:2px;background:var(--hub-accent);flex-shrink:0;}
.teba-ticket-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);align-items:start;gap:26px;}
.teba-ticket-matchday{margin-bottom:16px;padding:24px;background:#07080b;color:#fff}.teba-ticket-matchday>small,.teba-section-label{color:var(--hub-accent);font-family:var(--hub-mono);font-size:10px;font-weight:900;letter-spacing:.18em;text-transform:uppercase}.teba-ticket-matchday h1{margin:4px 0 18px;color:#fff;font-family:var(--hub-display);font-size:30px;line-height:1;text-transform:uppercase}.teba-ticket-matchday__heading{display:flex;justify-content:space-between;align-items:start;gap:20px}.teba-ticket-matchday__heading p{margin:0!important;text-align:right;font-family:var(--hub-mono);font-size:10px!important}.teba-ticket-matchday__heading p strong,.teba-ticket-matchday__heading p span{display:block}.teba-ticket-matchday__game{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:10px;padding:11px 0;border-top:1px solid rgba(255,255,255,.18);font-family:var(--hub-mono);font-size:11px}.teba-ticket-matchday time{color:var(--hub-accent)}.teba-ticket-matchday__game em{color:#aaa;font-style:normal;font-size:9px;letter-spacing:.14em;text-transform:uppercase}.teba-ticket-matchday__game em:not(:last-child){color:#fff}.teba-ticket-matchday__note{margin:18px 0 0;padding-top:15px;border-top:1px solid rgba(255,255,255,.18);color:#fff;font-size:12px;line-height:1.6}.teba-section-label{margin:18px 0 8px}
.teba-pass-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.teba-pass-option{display:block;padding:16px;border:1px solid var(--hub-line);background:rgba(255,255,255,.34);cursor:pointer}.teba-pass-option.is-selected{border:2px solid var(--hub-accent);background:#fff}.teba-pass-option input{position:absolute;opacity:0}.teba-pass-option strong,.teba-pass-option small{display:block}.teba-pass-option strong{font-family:var(--hub-display);font-size:15px;text-transform:uppercase}.teba-pass-option small{margin-top:5px;color:#777;font-family:var(--hub-mono);font-size:9px}.teba-ticket-option-panel{display:none}.teba-ticket-option-panel.is-active{display:grid}
.teba-pass-options--single{grid-template-columns:1fr}
.teba-ticket-matchday__game em.is-featured{padding:4px 7px;background:var(--hub-accent);color:#fff}
.teba-pass-option.is-disabled,.teba-session-option.is-disabled,.teba-ticket-seat.is-disabled{cursor:not-allowed;opacity:.52}.teba-ticket-seat.is-disabled button{pointer-events:none}.teba-ticket-seat.is-disabled .teba-ticket-qty{background:rgba(7,8,11,.05)}
.teba-session-options{margin-top:14px}.teba-session-options[hidden]{display:none}.teba-session-option{display:flex;align-items:center;gap:12px;margin-top:7px;padding:13px 16px;border:1px solid var(--hub-line);background:rgba(255,255,255,.34);cursor:pointer}.teba-session-option.is-selected{border-color:var(--hub-accent);background:rgba(8,171,198,.07)}.teba-session-option input{accent-color:var(--hub-accent)}.teba-session-option span,.teba-session-option strong,.teba-session-option small{display:block}.teba-session-option strong{font-family:var(--hub-display);font-size:13px;text-transform:uppercase}.teba-session-option small{margin-top:3px;color:#777;font-family:var(--hub-mono);font-size:9px}
.teba-ticket-coupon{display:grid;grid-template-columns:1fr;gap:6px;margin-top:12px}.teba-ticket-coupon label{font-family:var(--hub-mono);font-size:9px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.teba-ticket-coupon input{width:100%;min-height:42px;padding:10px 12px;border:1px solid #bbb;border-radius:0;background:rgba(255,255,255,.36);box-shadow:none;font-family:var(--hub-mono);text-transform:uppercase}
.teba-ticket-title{max-width:820px;margin:8px 0 22px;color:#07080b;font-family:var(--hub-display);font-size:clamp(34px,4.6vw,58px);font-weight:900;line-height:.9;letter-spacing:.02em;text-transform:uppercase;}
.teba-ticket-event-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:24px;padding:24px;margin:0 0 34px;background:var(--hub-card);border:1px solid var(--hub-line);}
.teba-ticket-event-team img{display:block;width:56px;height:56px;object-fit:contain;}
.teba-ticket-event-team--away img{margin-left:auto;}
.teba-ticket-event-meta span,.teba-ticket-event-meta small{display:block;color:var(--hub-accent);font-family:var(--hub-mono);font-size:11px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;}
.teba-ticket-event-meta strong{display:block;margin:6px 0 4px;color:#07080b;font-family:var(--hub-display);font-size:clamp(18px,2vw,30px);line-height:1;text-transform:uppercase;}
.teba-ticket-seat-list{display:grid;gap:10px;margin-top:16px;}
.teba-ticket-seat{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:18px;min-height:70px;padding:16px;background:var(--hub-card);border:1px solid var(--hub-line);border-radius:0;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease;}
.teba-ticket-seat.is-selected{border:2px solid var(--hub-accent);background:rgba(255,255,255,.66);box-shadow:0 10px 26px rgba(7,8,11,.05);}
.teba-ticket-seat input{appearance:textfield;margin:0;padding:0;position:static;opacity:1;pointer-events:auto;}
.teba-ticket-seat__radio{width:22px;height:22px;border:2px solid rgba(7,8,11,.45);border-radius:50%;display:block;position:relative;}
.teba-ticket-seat.is-selected .teba-ticket-seat__radio{border-color:var(--hub-accent);background:var(--hub-accent);}
.teba-ticket-seat.is-selected .teba-ticket-seat__radio::after{content:'';position:absolute;inset:6px;border-radius:50%;background:#fff;}
.teba-ticket-seat__copy strong,.teba-ticket-seat__price{display:block;color:#07080b;font-family:var(--hub-display);font-size:16px;line-height:1;text-transform:uppercase;}.teba-ticket-seat__price{color:var(--hub-accent)}
.teba-ticket-seat__copy small{display:block;margin-top:5px;color:rgba(7,8,11,.55);font-family:var(--hub-mono);font-size:11px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;}
.teba-ticket-summary{position:sticky;top:20px;padding:0 20px 22px;background:rgba(255,255,255,.46);color:#07080b;border:1px solid var(--hub-line);border-radius:0;}.teba-ticket-summary__head{display:block;margin:0 -20px 22px;padding:18px 20px;background:var(--hub-accent);color:#fff}.teba-ticket-summary__head strong,.teba-ticket-summary__head small{display:block}.teba-ticket-summary__head strong{font-family:var(--hub-display);font-size:18px;text-transform:uppercase}.teba-ticket-summary__head small{margin-top:4px;font-family:var(--hub-mono);font-size:9px;letter-spacing:.08em}.teba-ticket-summary__selection{min-height:62px;padding:8px 0;color:#777;font-family:var(--hub-mono);font-size:10px}.teba-ticket-summary__selection p{display:flex;justify-content:space-between;gap:12px;margin:0;padding:9px 0;border-bottom:1px solid var(--hub-line)}.teba-ticket-summary__selection p:only-child{justify-content:center;border:0}.teba-ticket-summary__selection strong{color:#07080b}.teba-ticket-summary__fee{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--hub-line);font-family:var(--hub-mono);font-size:10px}.teba-ticket-summary__fee[hidden]{display:none}.teba-ticket-summary__estimate{display:block;margin-top:12px;color:#777;font-family:var(--hub-mono);font-size:8px;line-height:1.5}
.teba-ticket-summary__inner{display:block;}
.teba-ticket-summary__tier{display:block;color:#fff;font-family:var(--hub-display);font-size:24px;line-height:1;text-transform:uppercase;}
.teba-ticket-summary__row{display:block;margin:8px 0 28px;padding-bottom:22px;border-bottom:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.7);font-family:var(--hub-mono);font-size:12px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;}
.teba-ticket-summary__line,.teba-ticket-summary__total{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 0;border-top:1px solid var(--hub-line);font-family:var(--hub-mono);font-size:11px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;}
.teba-ticket-summary__total{margin-top:6px;padding-top:18px;}
.teba-ticket-summary__total strong{font-family:var(--hub-display);font-size:28px;line-height:.95;color:var(--hub-accent);}
.teba-ticket-qty{display:inline-flex;align-items:center;border:1px solid rgba(255,255,255,.18);}
.teba-ticket-qty{border-color:#bbb}.teba-ticket-qty button,.teba-ticket-qty input{width:38px;min-width:38px;height:38px;border:0;border-left:1px solid #ccc;background:transparent;color:#07080b;text-align:center;font-family:var(--hub-mono);font-weight:900;box-shadow:none;border-radius:0;}
.teba-ticket-qty button:first-child{border-left:0;}
.teba-ticket-checkout,.woocommerce .teba-ticket-checkout.button{width:100%;min-height:52px;margin-top:20px;border:1px solid var(--hub-accent);border-radius:0;background:var(--hub-accent);color:#fff;font-family:var(--hub-mono);font-size:12px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;text-align:center;}
.teba-ticket-summary ul{margin:14px 0 0;padding:0;list-style:none;color:#666;font-family:var(--hub-mono);font-size:9px;line-height:1.8}.teba-ticket-summary li::before{content:'✓';margin-right:6px;color:var(--hub-accent)}
.woocommerce-checkout:has(.teba-ticket-steps),.woocommerce-order-received:has(.teba-ticket-steps){background:var(--hub-paper)}.woocommerce-checkout .teba-ticket-steps,.woocommerce-order-received .teba-ticket-steps{max-width:1220px;margin:26px auto}.woocommerce-checkout form.checkout{max-width:1220px;margin:0 auto}.woocommerce-checkout form.checkout input,.woocommerce-checkout form.checkout select,.woocommerce-checkout form.checkout textarea{border-radius:0}.woocommerce-checkout #place_order{background:var(--hub-accent);border-radius:0;font-family:var(--hub-mono);font-weight:900;letter-spacing:.14em;text-transform:uppercase}.woocommerce-order-received .woocommerce-order{max-width:1220px;margin:0 auto 60px}.woocommerce-order-received .woocommerce-notice--success{font-family:var(--hub-display);font-size:38px;text-transform:uppercase}
.teba-ticket-checkout-page,.teba-ticket-confirmation-page{background:var(--hub-paper)}.teba-ticket-checkout-page .woocommerce,.teba-ticket-confirmation-page .woocommerce{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.teba-ticket-checkout-page h3,.teba-ticket-confirmation-page h2{font-family:var(--hub-display);text-transform:uppercase}.teba-ticket-checkout-page #order_review{padding:22px;border:1px solid var(--hub-line);background:rgba(255,255,255,.42)}.teba-ticket-checkout-page #payment{border-radius:0;background:rgba(255,255,255,.5)}.teba-ticket-confirmation-page .woocommerce-order-overview,.teba-ticket-confirmation-page .woocommerce-order-details,.teba-ticket-confirmation-page .woocommerce-customer-details{padding:22px;border:1px solid var(--hub-line);background:rgba(255,255,255,.42)}.teba-ticket-confirmation-page .woocommerce-order-overview{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px}.teba-ticket-confirmation-page .woocommerce-order-overview li{float:none;width:auto;margin:0;padding:0;border:0}.teba-confirmation-actions{display:flex;flex-wrap:wrap;gap:10px;margin:26px 0}.woocommerce .teba-confirmation-actions .button{min-width:210px;padding:16px 24px;border-radius:0;text-align:center;font-family:var(--hub-mono);font-size:11px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.woocommerce .teba-confirmation-actions .teba-confirmation-primary{border:1px solid var(--hub-accent);background:var(--hub-accent);color:#fff}.woocommerce .teba-confirmation-actions .teba-confirmation-secondary{border:1px solid var(--hub-accent);background:transparent;color:var(--hub-accent)}
.teba-ticket-summary--mobile{display:none;}
.teba-ticket-notices .woocommerce-message,.teba-ticket-notices .woocommerce-error,.teba-ticket-notices .woocommerce-info{margin:0 0 18px;}
@media(max-width:900px){.teba-ticket-page{padding:34px 18px 64px}.teba-ticket-grid{grid-template-columns:1fr}.teba-ticket-summary--desktop{display:none}.teba-ticket-summary--mobile{display:block;position:static;margin-top:24px}.teba-ticket-title{font-size:clamp(34px,11vw,50px)}}
@media(max-width:760px){.teba-ticket-event-card{grid-template-columns:56px 1fr 56px;gap:14px;padding:18px}.teba-ticket-steps{gap:6px}.teba-ticket-steps span:not(:last-child)::after{width:15px}.teba-ticket-matchday__heading{display:block}.teba-ticket-matchday__heading p{text-align:left}.teba-ticket-matchday__game{grid-template-columns:58px 1fr}.teba-ticket-matchday__game em{grid-column:2}.teba-pass-options{grid-template-columns:1fr}.teba-ticket-seat{grid-template-columns:1fr auto}.teba-ticket-seat__price{grid-column:1}.teba-ticket-qty{grid-column:2;grid-row:1/3}.teba-ticket-page{padding-left:16px;padding-right:16px}}
@media(max-width:430px){.teba-ticket-summary{padding-left:18px;padding-right:18px}.teba-ticket-summary__head{margin-left:-18px;margin-right:-18px}.teba-ticket-summary__total strong{font-size:25px}.teba-ticket-steps b{font-size:8px}}
