/* ============================================
   TICKETALITY FRONTEND CSS - CONSOLIDATED
   ============================================ */

/* Season ticket window banner (renewal/public/closed) */
.tktas-season-window{
  margin:16px 0 18px;
  padding:14px 16px;
  border-radius:12px;
  border:1px solid rgba(0,0,0,0.08);
  background:#fff;
  box-shadow:0 8px 20px rgba(0,0,0,0.04);
}
.tktas-season-window__title{
  font-weight:700;
  font-size:16px;
  margin:0 0 6px;
}
.tktas-season-window__sub{
  font-size:13px;
  line-height:1.5;
  margin:0 0 10px;
  color:rgba(0,0,0,0.72);
}
.tktas-season-window .tktas-renew-autofill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  border-radius:10px;
  padding:10px 14px;
  line-height:40px;
}

/* Widget container */
.tktas-widget{margin:16px 0;padding:12px;border:1px solid #ddd;border-radius:8px;background:#fff}
.tktas-title{margin:0 0 10px;font-size:18px}

/* Stage (map container) */
.tktas-stage{position:relative;width:100%;border:1px solid #eee;border-radius:8px;overflow:hidden;background:#fafafa;height:400px;display:flex;align-items:center;justify-content:center;touch-action:none}
.tktas-svg-host{width:100%;height:100%;display:flex;align-items:center;justify-content:center}

/* Inline SVG styling */
.tktas-inline-svg{width:100%;height:100%;max-height:100%;display:block}
.tktas-inline-svg image{pointer-events:none}

/* Error box */
.tktas-error-box{margin:12px;padding:12px;border:1px solid #d63638;background:#fff5f5;color:#7a0000;border-radius:8px;font-size:14px;line-height:1.35}

/* ============================================
   STAGE HEADER (focus mode overlay)
   ============================================ */
.tktas-stage-header{
  position:absolute;
  top:10px;
  left:10px;
  right:10px;
  z-index:5;
  display:flex;
  align-items:center;
  justify-content:center;
  pointer-events:auto;
}

.tktas-stage-title{
  pointer-events:auto;
  max-width:85%;
  padding:8px 14px;
  border:1px solid rgba(0,0,0,0.10);
  background:rgba(255,255,255,0.95);
  border-radius:12px;
  font-size:14px;
  font-weight:700;
  letter-spacing:0.2px;
  box-shadow:0 6px 18px rgba(0,0,0,0.08);
}

/* Back button (returns to stadium view) */
.tktas-stage-back{
  pointer-events:auto;
  position:absolute !important;
  left:auto !important;
  right:0 !important;
  top:0 !important;
  z-index:20 !important;
  border:1px solid rgba(0,0,0,0.10) !important;
  background:#0b4c84 !important;
  color:#fff !important;
  border-radius:10px !important;
  width:28px !important;
  height:28px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  cursor:pointer !important;
  box-shadow:0 6px 18px rgba(0,0,0,0.08) !important;
}

/* ============================================
   LEGEND
   ============================================ */
.tktas-stage-legend{
  position:absolute;
  bottom:12px;
  right:12px;
  z-index:15;
  border:1px solid rgba(0,0,0,0.10);
  background:rgba(255,255,255,0.98);
  border-radius:12px;
  box-shadow:0 8px 20px rgba(0,0,0,0.08);
  font-size:13px;
  line-height:1.25;
  color:#1f2937;
  min-width:unset;
  overflow:hidden;
  pointer-events:auto;
}
.tktas-legend-toggle{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:10px 14px;
  cursor:pointer;
  user-select:none;
  font-weight:600;
  font-size:13px;
  line-height:1.4;
  color:#111827;
  background:#fff;
  border-radius:12px 12px 0 0;
}
.tktas-stage-legend:not(.is-expanded) .tktas-legend-toggle{
  border-radius:12px;
}
.tktas-legend-toggle:hover{
  background:#f9fafb;
}
.tktas-legend-toggle-text{
  flex:1;
}
.tktas-legend-toggle-icon{
  font-size:10px;
  transition:transform 0.2s ease;
  color:#666;
}
.tktas-stage-legend.is-expanded .tktas-legend-toggle-icon{
  transform:rotate(180deg);
}
.tktas-legend-content{
  max-height:0;
  overflow:hidden;
  transition:max-height 0.25s ease, padding 0.25s ease;
  padding:0 12px;
}
.tktas-stage-legend.is-expanded .tktas-legend-content{
  max-height:200px;
  padding:0 12px 10px 12px;
}
.tktas-legend-title{font-weight:700;margin-bottom:8px;color:#111827}
.tktas-legend-row{display:flex;align-items:center;gap:8px;margin:6px 0}
.tktas-swatch{width:12px;height:12px;border-radius:999px;display:inline-block;border:1px solid rgba(0,0,0,0.15)}
.tktas-swatch--held{background:#9ca3af}
.tktas-swatch--cart{background:#f59e0b}
.tktas-swatch--other{background:#10b981}
.tktas-swatch--resale{background:#8b5cf6}

/* Row labels inside focus-mode SVG */
#tktas-row-labels text{font-size:5px !important;font-weight:400 !important;fill:rgba(0,0,0,0.55) !important}

/* ============================================
   TOOLTIP
   ============================================ */
.tktas-tooltip{
  position:absolute;
  z-index:6;
  padding:8px 10px;
  border-radius:10px;
  background:rgba(15,15,15,0.92);
  color:#fff;
  font-size:12px;
  line-height:1.2;
  box-shadow:0 12px 30px rgba(0,0,0,0.18);
  pointer-events:auto;
  transform:translate(10px, 10px);
  white-space:nowrap;
}

/* ============================================
   SECTIONS (clickable areas in stadium SVG)
   ============================================ */
.tktas-section,[id^="section-"]{cursor:pointer;pointer-events:auto;stroke:rgba(0,0,0,0.35);stroke-width:2;fill:rgba(0,0,0,0.06)}
.tktas-section:hover,[id^="section-"]:hover{stroke:rgba(0,0,0,0.7);fill:rgba(0,0,0,0.10)}
.tktas-section-active{stroke:rgba(0,0,0,0.9) !important;fill:rgba(0,0,0,0.14) !important}

/* ============================================
   SEATS (individual seat circles)
   ============================================ */
.tktas-seat,[id^="seat-"]{cursor:pointer}
.tktas-seat{fill:rgba(0,0,0,0.35);stroke:rgba(0,0,0,0.55);stroke-width:0.6}
.tktas-seat.is-selected,[id^="seat-"].is-selected{fill:rgba(0,0,0,0.65);opacity:0.85}
.tktas-seat.is-held,[id^="seat-"].is-held{fill:rgba(0,0,0,0.20);opacity:0.45;cursor:not-allowed}
.tktas-seat.is-sold,[id^="seat-"].is-sold{fill:rgba(0,0,0,0.12);opacity:0.25;cursor:not-allowed}
.tktas-seat.is-resale,[id^="seat-"].is-resale{fill:#8b5cf6;opacity:0.75;cursor:not-allowed}

/* ============================================
   BUTTONS (theme-hardened)
   ============================================ */
.tktas-widget .tktas-btn{
  font:inherit !important;
  text-decoration:none !important;
  background-image:none !important;
  border-image:none !important;
  outline:none !important;
  box-sizing:border-box !important;
  -webkit-appearance:none !important;
  appearance:none !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:8px !important;
  border:1px solid rgba(0,0,0,0.10) !important;
  background:#0b4c84 !important;
  border-radius:12px !important;
  padding:10px 14px !important;
  line-height:1 !important;
  font-weight:700 !important;
  text-transform:none !important;
  letter-spacing:0 !important;
  box-shadow:0 10px 22px rgba(0,0,0,0.08) !important;
  cursor:pointer !important;
  min-width:0 !important;
}
.tktas-widget .tktas-btn .tktas-icon{color:#fff !important;display:inline-flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;opacity:0.85}
.tktas-widget .tktas-btn:hover{box-shadow:0 14px 30px rgba(0,0,0,0.12)}

/* Ultra theme-proof sizing */
.tktas-widget button.tktas-btn{
  min-width:0 !important;
  line-height:1 !important;
}

/* ============================================
   ZOOM CONTROLS
   ============================================ */
.tktas-zoom{display:flex;gap:10px;align-items:center;margin-top:10px;flex-wrap:wrap}

.tktas-widget .tktas-zoom .tktas-btn{
  width:44px !important;
  height:44px !important;
  padding:0 !important;
  background:#0b4c84 !important;
}

/* ============================================
   FOCUS MODE
   ============================================ */

/* Panel positioning */
.tktas-widget.tktas-focus-mode .tktas-panel{
  position:relative !important;
}

/* Stage background */
.tktas-widget.tktas-focus-mode .tktas-stage{background:#f3f4f6}
.tktas-widget.tktas-focus-mode .tktas-svg-host svg image{opacity:0 !important}
.tktas-widget.tktas-focus-mode .tktas-svg-host svg > *:not(#tktas-seat-overlay):not(defs){opacity:0 !important}
.tktas-widget.tktas-focus-mode .tktas-svg-host svg #tktas-seat-overlay{opacity:1}

/* Focus bar visibility */
.tktas-focusbar{display:none}
.tktas-widget.tktas-focus-mode .tktas-focusbar{display:none !important}
.tktas-widget.tktas-focus-mode .tktas-stage-header{
  display:flex !important;
  position:absolute !important;
  top:12px !important;
  left:12px !important;
  right:12px !important;
  z-index:50 !important;
  justify-content:center !important;
  align-items:center !important;
  pointer-events:auto !important;
}

/* Focus mode back button - FINAL STYLES */
.tktas-widget.tktas-focus-mode .tktas-stage-back{
  position:absolute !important;
  right:0 !important;
  left:auto !important;
  top:0 !important;
  z-index:60 !important;
  width:40px !important;
  height:40px !important;
  padding:0 !important;
  border-radius:12px !important;
  pointer-events:auto !important;
  background:#0b4c84 !important;
}
.tktas-widget.tktas-focus-mode .tktas-stage-back .tktas-icon{font-size:16px !important;line-height:1 !important;opacity:1}
.tktas-widget.tktas-focus-mode .tktas-stage-header .tktas-stage-title{pointer-events:none !important;}

/* Focus mode zoom buttons - FINAL STYLES */
.tktas-widget.tktas-focus-mode .tktas-zoom .tktas-btn{
  background:#0b4c84 !important;
  border-color:rgba(0,0,0,0.08) !important;
  box-shadow:0 10px 24px rgba(0,0,0,0.10) !important;
}
.tktas-widget.tktas-focus-mode .tktas-zoom .tktas-btn .tktas-icon{opacity:1}

.tktas-widget.tktas-focus-mode button.tktas-btn.tktas-zoom-in,
.tktas-widget.tktas-focus-mode button.tktas-btn.tktas-zoom-out,
.tktas-widget.tktas-focus-mode button.tktas-btn.tktas-zoom-reset{
  width:44px !important;
  height:44px !important;
  min-width:44px !important;
  padding:0 !important;
}

/* Focus mode seat styling */
.tktas-widget.tktas-focus-mode .tktas-seat{fill:var(--tktas-seat-color,#111111);stroke:rgba(0,0,0,0.32);stroke-width:0.6}
.tktas-widget.tktas-focus-mode .tktas-seat.is-selected{
  fill:#ffffff !important;
  stroke:rgba(0,0,0,0.35) !important;
  stroke-width:1.2 !important;
}
.tktas-widget.tktas-focus-mode .tktas-seat.is-held{fill:rgba(0,0,0,0.20)}
.tktas-widget.tktas-focus-mode .tktas-seat.is-sold{fill:#9ca3af !important;opacity:0.95;cursor:not-allowed}
.tktas-widget.tktas-focus-mode .tktas-seat.is-resale{fill:#8b5cf6 !important;opacity:0.85;cursor:not-allowed}

/* Status colors (must match legend) */
.tktas-widget.tktas-focus-mode .tktas-seat.is-reserved{fill:#9ca3af !important;opacity:0.95;cursor:not-allowed}
.tktas-widget.tktas-focus-mode .tktas-seat.is-in-cart{fill:#f59e0b !important;opacity:0.9;cursor:not-allowed}
.tktas-widget.tktas-focus-mode .tktas-seat.is-held-other{fill:#10b981 !important;opacity:0.85;cursor:not-allowed}

/* Mine-held seats remain clickable */
.tktas-widget.tktas-focus-mode .tktas-seat.is-held.is-held-mine{cursor:pointer;opacity:0.95}
.tktas-widget.tktas-focus-mode .tktas-seat.is-held.is-held-mine.is-in-cart{cursor:not-allowed}

/* ============================================
   MULTI-TAB SELECTION LOCK
   ============================================ */
.tktas-readonly .tktas-svg-host{pointer-events:none;opacity:0.98}
.tktas-tab-lock{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 12px;
  margin:0 0 10px 0;
  border:1px solid rgba(0,0,0,0.08);
  border-radius:10px;
  background:rgba(0,0,0,0.03);
}
.tktas-tab-lock__text{font-size:13px;line-height:1.2}
.tktas-tab-lock__take{
  appearance:none;
  border:0;
  border-radius:8px;
  padding:8px 10px;
  cursor:pointer;
  line-height:40px;
}

/* ============================================
   BUY NOW BUTTON HIDING (when seating active)
   ============================================ */
body.tktas-enabled:not(.tktas-no-seats) form.cart .buy_now_button,
body.tktas-enabled:not(.tktas-no-seats) form.cart .buy-now,
body.tktas-enabled:not(.tktas-no-seats) form.cart .buy-now-button,
body.tktas-enabled:not(.tktas-no-seats) form.cart .motta-buy-now,
body.tktas-enabled:not(.tktas-no-seats) form.cart .motta-buy-now-button,
body.tktas-enabled:not(.tktas-no-seats) form.cart .motta-buy-now-btn,
body.tktas-enabled:not(.tktas-no-seats) form.cart .single_buy_now_button,
body.tktas-enabled:not(.tktas-no-seats) form.cart button[name="buy_now"],
body.tktas-enabled:not(.tktas-no-seats) form.cart button[name="wc_buy_now"],
body.tktas-enabled:not(.tktas-no-seats) form.cart a[name="buy_now"],
body.tktas-enabled:not(.tktas-no-seats) form.cart .wc-buy-now,
body.tktas-enabled:not(.tktas-no-seats) form.cart .wc-buy-now-button,
body.tktas-enabled:not(.tktas-no-seats) form.cart a.buy_now_button,
body.tktas-enabled:not(.tktas-no-seats) form.cart button.buy_now_button{display:none !important;}

form.cart{flex-wrap:wrap;}

/* Add to cart button full width when seating enabled */
body.tktas-enabled:not(.tktas-no-seats) .single-product div.product.has-buy-now form.cart .single_add_to_cart_button,
body.tktas-enabled:not(.tktas-no-seats) .single-product div.product.has-buy-now form.cart button.single_add_to_cart_button,
body.tktas-enabled:not(.tktas-no-seats) form.cart .single_add_to_cart_button{
  flex:1 1 100% !important;
  width:100% !important;
  max-width:100% !important;
  float:none !important;
  display:inline-flex !important;
  justify-content:center !important;
  align-items:center !important;
  margin-top:10px !important;
  margin-right:0 !important;
  margin-left:0 !important;
  padding:16px 20px !important;
  border-radius:14px !important;
}

/* ============================================
   NO-SEATS FALLBACK (when seating enabled but no seats generated)
   ============================================ */
body.tktas-no-seats.single-product form.cart{
  display:flex !important;
  flex-wrap:nowrap !important;
  align-items:center !important;
  gap:12px !important;
}
body.tktas-no-seats.single-product form.cart .quantity{
  margin:0 !important;
  flex:0 0 auto !important;
  width:auto !important;
}
body.tktas-no-seats.single-product form.cart .single_add_to_cart_button,
body.tktas-no-seats.single-product form.cart button.single_add_to_cart_button,
body.tktas-no-seats.single-product form.cart .buy_now_button,
body.tktas-no-seats.single-product form.cart .motta-buy-now,
body.tktas-no-seats.single-product form.cart .motta-buy-now-button,
body.tktas-no-seats.single-product form.cart .single_buy_now_button,
body.tktas-no-seats.single-product form.cart .wc-buy-now-button{
  margin:0 !important;
  margin-top:0 !important;
  width:auto !important;
  max-width:none !important;
  flex:1 1 220px !important;
  display:inline-flex !important;
  justify-content:center !important;
  align-items:center !important;
  min-width:160px !important;
  min-height:48px !important;
}

/* ============================================
   RESPONSIVE
   ============================================ */
@media (max-width: 640px){
  .tktas-stage{height:400px}
  body.tktas-no-seats.single-product form.cart{flex-wrap:wrap !important}
  body.tktas-no-seats.single-product form.cart .quantity{flex:1 1 100% !important}
  body.tktas-no-seats.single-product form.cart .single_add_to_cart_button,
  body.tktas-no-seats.single-product form.cart button.single_add_to_cart_button,
  body.tktas-no-seats.single-product form.cart .buy_now_button,
  body.tktas-no-seats.single-product form.cart .motta-buy-now,
  body.tktas-no-seats.single-product form.cart .motta-buy-now-button,
  body.tktas-no-seats.single-product form.cart .single_buy_now_button,
  body.tktas-no-seats.single-product form.cart .wc-buy-now-button{
    flex:1 1 100% !important;
    width:100% !important;
  }
}

@media (max-width: 480px){
  .tktas-widget{padding:10px}
  .tktas-zoom{width:100%;justify-content:space-between}
  .tktas-zoom .tktas-btn{flex:1 1 30%;min-width:0;box-sizing:border-box}
}

/* Reserve warning message */
.tktas-reserve-warning {
  color: #666;
  font-size: 13px;
}

@media (max-width: 1024px) {
  .tktas-reserve-warning {
    font-size: 11px;
  }
}

/* ============================================
   CHECKOUT CARDS - All Devices (v3.3.24 style)
   ============================================ */

.tktas-checkout-sidebar {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: 24px;
  width: 100%;
  box-sizing: border-box;
}

.tktas-checkout-card {
  background: #fff;
  border: 1px solid var(--tktas-border, #e0e0e0);
  border-radius: 10px;
  overflow: hidden;
  box-shadow: var(--tktas-shadow-sm, 0 1px 3px rgba(0,0,0,0.06));
  width: 100%;
}

.tktas-checkout-card-header {
  padding: 14px 18px;
  background: #fff;
  border-bottom: 1px solid var(--tktas-border, #e0e0e0);
}

.tktas-checkout-card-title h3 {
  font-size: 15px;
  font-weight: 600;
  color: var(--tktas-black, #1e293b);
  margin: 0;
  padding: 0;
  border: none;
  background: none;
  line-height: 1.3;
}

.tktas-checkout-card-title p {
  font-size: 12px;
  margin: 3px 0 0;
  line-height: 1.3;
}

.tktas-checkout-card-body {
  padding: 16px 18px;
}

/* Card fields styling */
.tktas-checkout-card-body .form-row {
  margin-bottom: 12px !important;
  padding: 0 !important;
  width: 100% !important;
  float: none !important;
}

.tktas-checkout-card-body .form-row:last-child {
  margin-bottom: 0 !important;
}

.tktas-checkout-card-body .form-row label {
  font-size: 13px;
  font-weight: 500;
  color: var(--tktas-gray-700, #334155);
  margin-bottom: 5px;
  display: block;
}

.tktas-checkout-card-body select,
.tktas-checkout-card-body input[type="text"],
.tktas-checkout-card-body input[type="number"]:not([name="tktas_checkout_donation_custom"]),
.tktas-checkout-card-body textarea {
  width: 100% !important;
  max-width: 100% !important;
  height: 40px !important;
  padding: 0 12px !important;
  font-size: 14px !important;
  line-height: 40px !important;
  background-color: #fff;
  border: 1px solid #d1d5db !important;
  border-radius: 6px !important;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
  -webkit-appearance: none;
  appearance: none;
  box-sizing: border-box !important;
}

/* Donation custom amount input - separate styling */
.tktas-checkout-card-body input[name="tktas_checkout_donation_custom"] {
  width: 100px !important;
  height: 40px !important;
  padding: 0 12px !important;
  font-size: 14px !important;
  line-height: 40px !important;
  background-color: #fff;
  border: 1px solid #d1d5db !important;
  border-radius: 6px !important;
  box-sizing: border-box !important;
}

/* Stronger selectors for checkout card fields */
.woocommerce-checkout .tktas-checkout-card-body select,
.woocommerce-checkout .tktas-checkout-card-body input[type="text"],
.woocommerce-checkout .tktas-checkout-card-body input[type="number"]:not([name="tktas_checkout_donation_custom"]),
#order_review .tktas-checkout-card-body select,
#order_review .tktas-checkout-card-body input[type="text"],
#order_review .tktas-checkout-card-body input[type="number"]:not([name="tktas_checkout_donation_custom"]) {
  height: 40px !important;
  min-height: 40px !important;
  max-height: 40px !important;
  line-height: 40px !important;
  padding: 0 12px !important;
}

.tktas-checkout-card-body textarea {
  height: auto !important;
  min-height: 80px;
  padding: 10px 12px !important;
  line-height: 1.4 !important;
}

/* Align donation fee amount to right in checkout order review */
#order_review table tfoot tr.fee td,
#order_review table tfoot tr.fee th,
.woocommerce-checkout-review-order table tfoot tr.fee td,
.woocommerce-checkout-review-order table tfoot tr.fee th {
  text-align: right !important;
}

.tktas-checkout-card-body select {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
  background-position: right 10px center;
  background-repeat: no-repeat;
  background-size: 14px;
  padding-right: 32px;
  cursor: pointer;
}

.tktas-checkout-card-body select:focus,
.tktas-checkout-card-body input:focus {
  border-color: #0ea5e9;
  box-shadow: 0 0 0 3px rgba(14, 165, 233, 0.1);
  outline: none;
}

/* Two-column grid for HBCU fields */
.tktas-card-field-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.tktas-card-field-grid .form-row {
  margin-bottom: 0 !important;
}

/* Chapter code validation result */
#tktas_chapter_code_result {
  margin-top: 6px;
}

#tktas_chapter_code_result .chapter-valid {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 10px;
  background: var(--tktas-success-light, #dcfce7);
  border: 1px solid #86efac;
  border-radius: 6px;
  color: #166534;
  font-size: 12px;
}

#tktas_chapter_code_result .chapter-valid::before {
  content: "✓";
  font-weight: 700;
}

#tktas_chapter_code_result .chapter-invalid {
  padding: 8px 10px;
  background: #fef2f2;
  border: 1px solid #fecaca;
  border-radius: 6px;
  color: #991b1b;
  font-size: 12px;
}

/* Mobile adjustments */
@media (max-width: 600px) {
  .tktas-checkout-card-body select,
  .tktas-checkout-card-body input {
    font-size: 16px; /* Prevent iOS zoom */
  }
  
  .tktas-card-field-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }
}

/* ============================================
   Checkout Review Order Padding
   ============================================ */

form.checkout .woocommerce-checkout-review-order {
  padding: 30px;
}

@media (max-width: 767px) {
  .woocommerce-checkout.checkout .woocommerce-checkout-review-order {
    padding: 30px 24px;
  }
}

/* ── Updates 91: Ticket Cards ── */
.tktas-ticket-card-meta,
.tktas-my-tickets .tktas-ticket-card-meta,
.woocommerce-MyAccount-content .tktas-ticket-card-meta { color: #666 !important; font-weight: 400 !important; font-size: 13px !important; }
.tktas-ticket-card-badge.upcoming { background: #fff !important; color: #0b4c84 !important; border: 1px solid #0b4c84 !important; }
.tktas-ticket-card-event h3 { font-size: 16px !important; font-weight: 500 !important; }

/* Hide icons inside ticket card action buttons */
.tktas-ticket-card-actions .tktas-btn > i,
.tktas-ticket-card-actions .tktas-btn-outline > i,
.tktas-ticket-card-actions .tktas-btn-primary > i,
.tktas-my-tickets .tktas-ticket-card-actions a i { display: none; }

/* ── Updates 91: Event Cards ── */
.tktas-event-card .tktas-card-image img,
.tktas-event-img img { border-bottom: 1px solid #e0e0e0; }

/* ── Updates 91: Add-to-Cart ── */
body.tktas-enabled:not(.tktas-no-seats) form.cart .single_add_to_cart_button { margin-top: 3px !important; line-height: 40px; font-size: 14px; }

/* ── Updates 91: Marketplace / Affiliate Headings ── */
.tktas-section-header { margin-bottom: 30px !important; padding-bottom: 0 !important; border-bottom: none !important; border-left: none !important; padding-left: 0 !important; }
.tktas-mp-header h2 { display: none !important; }
.tktas-affiliate-form h2 { display: none !important; }
.tktas-affiliate-form .subtitle { margin-top: -10px !important; }

/* ── Updates 91: Promo Code ── */
.tktas-promo-code-wrapper > h3 { font-size: 1.75rem !important; }
.tktas-promo-code-wrapper { padding: 15px 30px !important; border-radius: 8px !important; background: #fbfbfc !important; }
@media (max-width: 767px) {
    .tktas-promo-code-wrapper { padding: 10px 30px 50px !important; }
    #tktas_promo_code_input { margin-bottom: 20px !important; }
}

/* ── Updates 91: Single Event ── */
.tktas-single-event-address { color: #7c818b !important; }
.tktas-sold-by-logo { border: none !important; }
.tktas-selected { margin-top: 10px !important; }

/* ── Updates 91: Holdbar ── */
.tktas-holdbar { margin-top: 10px !important; margin-bottom: 22px !important; background-color: #fead13 !important; color: #fff !important; }

/* ── Updates 91: Resale ── */
.tktas-resale-btn-primary { line-height: 40px !important; font-size: 14px !important; }

/* ── Updates 91: EF Button ── */
.tktas-ef-btn-primary { font-size: 40px !important; }




/* ============================================================================
   SEASON TICKET CARDS — My Account (v3.24)
   ============================================================================
   Clean, professional card design. No gradients, no emojis.
   Dark bg → light text. Light bg → dark text. Consistent spacing.
   ============================================================================ */

/* ── Card Shell ── */
.tktas-st-card {
    border: 1px solid #d1d5db !important;
    border-radius: 12px !important;
    overflow: hidden !important;
    margin-bottom: 24px !important;
    background: #fff !important;
    box-shadow: 0 1px 3px rgba(0,0,0,0.06) !important;
}
.tktas-st-card.tktas-st-active {
    border-color: #0b4c84 !important;
}

/* ── Card Header (dark blue for active, light gray for inactive) ── */
.tktas-st-header {
    padding: 20px 24px !important;
    background: #f3f4f6 !important;
    color: #374151 !important;
}
.tktas-st-active .tktas-st-header {
    background: #0b4c84 !important;
    color: #fff !important;
}
.tktas-st-header-inner {
    display: flex !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
    flex-wrap: wrap !important;
    gap: 12px !important;
}

/* Type label */
.tktas-st-type {
    font-size: 13px !important;
    font-weight: 500 !important;
    margin-bottom: 4px !important;
    opacity: 1 !important;
    color: inherit !important;
}

/* Title — force correct contrast in all contexts */
.tktas-st-title {
    margin: 0 !important;
    font-size: 20px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
}
/* Inactive card: dark text */
.tktas-st-card .tktas-st-title,
.tktas-st-card .tktas-st-header .tktas-st-title,
.tktas-st-card .tktas-st-header h2,
.tktas-st-card .tktas-st-header h3 {
    color: #1e293b !important;
}
/* Active card: white text */
.tktas-st-active .tktas-st-title,
.tktas-st-active .tktas-st-header .tktas-st-title,
.tktas-st-active .tktas-st-header h2,
.tktas-st-active .tktas-st-header h3,
.tktas-st-card.tktas-st-active .tktas-st-title {
    color: #fff !important;
}

/* Venue subtitle */
.tktas-st-venue {
    font-size: 14px !important;
    margin-top: 4px !important;
    opacity: 1 !important;
    color: inherit !important;
}

/* Force all header children to inherit correct color */
.tktas-st-card .tktas-st-header .tktas-st-type,
.tktas-st-card .tktas-st-header .tktas-st-venue {
    color: #4b5563 !important;
}
.tktas-st-card.tktas-st-active .tktas-st-header .tktas-st-type,
.tktas-st-card.tktas-st-active .tktas-st-header .tktas-st-venue {
    color: #fff !important;
}

/* ── Status Badge ── */
.tktas-st-badge {
    display: inline-block !important;
    padding: 5px 14px !important;
    border-radius: 20px !important;
    font-size: 12px !important;
    font-weight: 500;
    white-space: nowrap !important;
    letter-spacing: 0.2px !important;
}
/* Active badge on dark bg */
.tktas-st-active .tktas-st-badge {
    background: rgba(255,255,255,0.18) !important;
    color: #fff !important;
}
/* Pending renewal — gold on white */
.tktas-st-badge--pending_renewal {
    background: #fead13 !important;
    color: #fff !important;
}
/* Expired — neutral gray */
.tktas-st-badge--expired {
    background: #e5e7eb !important;
    color: #4b5563 !important;
}
/* Cancelled */
.tktas-st-badge--cancelled {
    background: #fee2e2 !important;
    color: #991b1b !important;
}

/* ── Card Body ── */
.tktas-st-body {
    padding: 24px !important;
}

/* ── Info Row (Seat / Zone / Games) ── */
.tktas-st-info-row {
    display: flex !important;
    gap: 12px !important;
    flex-wrap: wrap !important;
    margin-bottom: 20px !important;
}
.tktas-st-info-box {
    padding: 14px 18px !important;
    border-radius: 10px !important;
    border: 1px solid #e5e7eb !important;
    background: #f9fafb !important;
    min-width: 120px !important;
}
.tktas-st-seat-box {
    flex: 1 !important;
    min-width: 140px !important;
}
.tktas-st-info-label {
    font-size: 11px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    color: #6b7280 !important;
    margin-bottom: 4px !important;
    font-weight: 600 !important;
}
.tktas-st-info-value {
    font-weight: 700 !important;
    color: #0b4c84 !important;
}
.tktas-st-seat-box .tktas-st-info-value { font-size: 18px !important; }
.tktas-st-zone-box .tktas-st-info-value { font-size: 16px !important; }
.tktas-st-games-box .tktas-st-info-value { font-size: 16px !important; color: #166534 !important; }
.tktas-st-games-box {
    background: #f0fdf4 !important;
    border-color: #bbf7d0 !important;
}

/* ── Engagement Row (Tenure / Streak / Referral) ── */
.tktas-st-engagement-row {
    display: flex !important;
    gap: 12px !important;
    flex-wrap: wrap !important;
    margin-bottom: 20px !important;
}
.tktas-st-engagement-card {
    padding: 14px 16px !important;
    border-radius: 10px !important;
    flex: 1 !important;
    min-width: 140px !important;
    text-align: center !important;
    border: 1px solid #e5e7eb !important;
    background: #f9fafb !important;
}
.tktas-st-engagement--tenure {
    background: #fffbeb !important;
    border-color: #fde68a !important;
}
.tktas-st-engagement--streak {
    background: #fff7ed !important;
    border-color: #fed7aa !important;
}
.tktas-st-engagement--referral {
    background: #eff6ff !important;
    border-color: #bfdbfe !important;
}
.tktas-st-engagement-card .tktas-st-info-label {
    font-size: 11px !important;
    text-transform: uppercase !important;
    color: #6b7280 !important;
    margin-bottom: 4px !important;
}
.tktas-st-engagement-value {
    font-weight: 700 !important;
    font-size: 16px !important;
    color: #1e293b !important;
}
.tktas-st-tenure-value { color: #92400e !important; }
.tktas-st-streak-value { font-size: 20px !important; color: #c2410c !important; }
.tktas-st-referral-code {
    font-size: 16px !important;
    color: #1e40af !important;
    font-family: "SF Mono", Monaco, Consolas, monospace !important;
    letter-spacing: 2px !important;
}
.tktas-st-engagement-detail {
    font-size: 11px !important;
    color: #6b7280 !important;
    margin-top: 4px !important;
}
.tktas-st-discount {
    font-size: 11px !important;
    color: #059669 !important;
    margin-top: 4px !important;
}

/* ── Seat Selection Prompt ── */
.tktas-st-seat-select {
    background: #fffbeb !important;
    border-radius: 10px !important;
    padding: 20px !important;
    margin-bottom: 20px !important;
    border: 1px solid #fde68a !important;
}
.tktas-st-seat-select-title {
    margin: 0 0 8px !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    color: #92400e !important;
}
.tktas-st-seat-select-desc {
    margin: 0 0 16px !important;
    color: #78350f !important;
    font-size: 14px !important;
}

/* ── Mini Plan Prompt ── */
.tktas-st-mini-plan {
    background: #f5f3ff !important;
    border-radius: 10px !important;
    padding: 20px !important;
    margin-bottom: 20px !important;
    border: 1px solid #c4b5fd !important;
}
.tktas-st-mini-plan-title {
    margin: 0 0 8px !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    color: #5b21b6 !important;
}
.tktas-st-mini-plan-desc {
    margin: 0 0 16px !important;
    color: #6d28d9 !important;
    font-size: 14px !important;
}

/* ── Wallet Link ── */
.tktas-st-wallet { margin-bottom: 20px !important; }
.tktas-st-wallet-link {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    background: #111 !important;
    color: #fff !important;
    padding: 10px 20px !important;
    border-radius: 8px !important;
    text-decoration: none !important;
    font-weight: 600 !important;
    font-size: 14px !important;
}
.tktas-st-wallet-link:hover { opacity: 0.85 !important; }

/* ── Renewal Section ── */
.tktas-st-renewal {
    background: #fffbeb !important;
    border: 1px solid #fde68a !important;
    border-radius: 10px !important;
    padding: 20px !important;
    margin-bottom: 20px !important;
}
.tktas-st-renewal-label {
    font-weight: 700 !important;
    color: #92400e !important;
    font-size: 15px !important;
}
.tktas-st-renewal-desc {
    margin: 8px 0 !important;
    color: #78350f !important;
    font-size: 14px !important;
}
.tktas-st-renewal-actions {
    display: flex !important;
    gap: 10px !important;
    flex-wrap: wrap !important;
    margin-top: 14px !important;
}

/* ── Buttons ── */
.tktas-st-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: none !important;
    padding: 10px 20px !important;
    border-radius: 8px !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    line-height: 1.4 !important;
    cursor: pointer !important;
    text-decoration: none !important;
    white-space: nowrap !important;
    transition: opacity 0.15s ease !important;
    background: #0b4c84 !important;
    color: #fff !important;
}
.tktas-st-btn:hover { opacity: 0.88 !important; }
/* Renew = gold bg, dark text for contrast */
.tktas-st-btn--renew {
    background: #fead13 !important;
    color: #1e293b !important;
}
.tktas-st-btn--plan  { background: #0b4c84 !important; color: #fff !important; }
.tktas-st-btn--change { background: #0b4c84 !important; color: #fff !important; }
.tktas-st-btn--cancel { background: #dc2626 !important; color: #fff !important; }

/* ── Game Tickets ── */
.tktas-st-games-heading {
    margin: 0 0 12px !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    color: #1e293b !important;
}
.tktas-st-games-list {
    display: grid !important;
    gap: 10px !important;
}
.tktas-st-game-row {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 14px 16px !important;
    background: #fff !important;
    border: 1px solid #e5e7eb !important;
    border-radius: 8px !important;
    gap: 12px !important;
    flex-wrap: wrap !important;
}
.tktas-st-game-past { background: #f9fafb !important; }
.tktas-st-game-info {
    flex: 1 !important;
    min-width: 200px !important;
}
.tktas-st-game-name {
    font-size: 14px !important;
    font-weight: 700 !important;
    color: #1e293b !important;
}
.tktas-st-game-muted { color: #9ca3af !important; }
.tktas-st-game-opponent {
    color: #6b7280 !important;
    font-size: 13px !important;
}
.tktas-st-game-date {
    font-size: 13px !important;
    color: #6b7280 !important;
    margin-top: 2px !important;
}
.tktas-st-game-actions {
    display: flex !important;
    gap: 8px !important;
    align-items: center !important;
}
.tktas-st-ticket-code {
    background: #f0f9ff !important;
    padding: 4px 10px !important;
    border-radius: 6px !important;
    font-size: 12px !important;
    font-family: monospace !important;
    color: #1e293b !important;
    border: 1px solid #e0ecf7 !important;
}
.tktas-st-game-actions .button.button-small,
.tktas-st-game-actions .tktas-st-btn {
    font-size: 13px !important;
    line-height: 32px !important;
    padding: 0 12px !important;
    height: 32px !important;
    border-radius: 6px !important;
    background: #0b4c84 !important;
    color: #fff !important;
    border: none !important;
}
.tktas-st-game-status {
    font-size: 13px !important;
    font-weight: 500 !important;
}
.tktas-st-status--transferred { color: #2563eb !important; }
.tktas-st-status--resold { color: #7c3aed !important; }
.tktas-st-status--attended { color: #16a34a !important; }
.tktas-st-status--voided { color: #ef4444 !important; }

/* ── Mobile ── */
/* ── Checkout donation card ── */
.tktas-checkout-card-donation .tktas-apply-btn { background: #0b4c84; }
.tktas-checkout-card-donation .tktas-option-amount { color: #0b4c84; }

@media (max-width: 640px) {
    .tktas-st-header { padding: 16px !important; }
    .tktas-st-body { padding: 16px !important; }
    .tktas-st-info-row { gap: 10px !important; }
    .tktas-st-info-box { min-width: 100% !important; }
    .tktas-st-engagement-card { min-width: 100% !important; }
    .tktas-st-renewal-actions { flex-direction: column !important; }
    .tktas-st-renewal-actions .tktas-st-btn { width: 100% !important; }
    .tktas-st-game-row { flex-direction: column !important; align-items: flex-start !important; }
}

/* v3.29.1: related event cards */
.tktas-related-products .tktas-card-image{height:220px;overflow:hidden;background:#f8fafc;}
.tktas-related-products .tktas-card-image img{width:100%;height:100%;object-fit:contain;object-position:center;display:block;background:#fff;}


/* Checkout order review: cleaner fee/tax/total layout */
.woocommerce-checkout #order_review table.shop_table tfoot tr.fee th,
.woocommerce-checkout #order_review table.shop_table tfoot tr.fee td,
.woocommerce-checkout #order_review table.shop_table tfoot tr.tax-rate th,
.woocommerce-checkout #order_review table.shop_table tfoot tr.tax-rate td,
.woocommerce-checkout .woocommerce-checkout-review-order table.shop_table tfoot tr.fee th,
.woocommerce-checkout .woocommerce-checkout-review-order table.shop_table tfoot tr.fee td,
.woocommerce-checkout .woocommerce-checkout-review-order table.shop_table tfoot tr.tax-rate th,
.woocommerce-checkout .woocommerce-checkout-review-order table.shop_table tfoot tr.tax-rate td {
  padding-top: 10px !important;
  padding-bottom: 10px !important;
  border-top: 1px solid #e5e7eb !important;
  vertical-align: middle !important;
}

.woocommerce-checkout #order_review table.shop_table tfoot tr.fee th,
.woocommerce-checkout #order_review table.shop_table tfoot tr.tax-rate th,
.woocommerce-checkout .woocommerce-checkout-review-order table.shop_table tfoot tr.fee th,
.woocommerce-checkout .woocommerce-checkout-review-order table.shop_table tfoot tr.tax-rate th {
  color: #1f2937 !important;
  font-weight: 500;
  letter-spacing: 0.01em;
}

.woocommerce-checkout #order_review table.shop_table tfoot tr.fee td,
.woocommerce-checkout #order_review table.shop_table tfoot tr.tax-rate td,
.woocommerce-checkout .woocommerce-checkout-review-order table.shop_table tfoot tr.fee td,
.woocommerce-checkout .woocommerce-checkout-review-order table.shop_table tfoot tr.tax-rate td {
  color: #111827 !important;
  font-weight: 500;
}

.woocommerce-checkout #order_review table.shop_table tfoot tr.fee:first-of-type th,
.woocommerce-checkout #order_review table.shop_table tfoot tr.fee:first-of-type td,
.woocommerce-checkout .woocommerce-checkout-review-order table.shop_table tfoot tr.fee:first-of-type th,
.woocommerce-checkout .woocommerce-checkout-review-order table.shop_table tfoot tr.fee:first-of-type td {
  border-top: 2px solid #dbe3ee !important;
}

.woocommerce-checkout #order_review table.shop_table tfoot tr.fee th::before,
.woocommerce-checkout .woocommerce-checkout-review-order table.shop_table tfoot tr.fee th::before {
  content: "Service fee";
  display: inline-block;
  margin-right: 0;
}

.woocommerce-checkout #order_review table.shop_table tfoot tr.fee th,
.woocommerce-checkout .woocommerce-checkout-review-order table.shop_table tfoot tr.fee th {
  font-size: 0;
}

.woocommerce-checkout #order_review table.shop_table tfoot tr.fee th::before,
.woocommerce-checkout .woocommerce-checkout-review-order table.shop_table tfoot tr.fee th::before,
.woocommerce-checkout #order_review table.shop_table tfoot tr.tax-rate th,
.woocommerce-checkout .woocommerce-checkout-review-order table.shop_table tfoot tr.tax-rate th {
  font-size: 15px;
}

.woocommerce-checkout #order_review table.shop_table tfoot tr.order-total th,
.woocommerce-checkout #order_review table.shop_table tfoot tr.order-total td,
.woocommerce-checkout .woocommerce-checkout-review-order table.shop_table tfoot tr.order-total th,
.woocommerce-checkout .woocommerce-checkout-review-order table.shop_table tfoot tr.order-total td {
  padding-top: 14px !important;
  border-top: 2px solid #cfd8e3 !important;
}

/* ── Cart totals: right-align tax amount (fixes theme override) ─────────────── */
.woocommerce-cart .cart_totals table.shop_table tr.tax-rate td,
.woocommerce .cart_totals .shop_table tr.tax-rate td,
.woocommerce table.shop_table tr[class*="tax-rate"] td {
    text-align: right;
}


/* v3.45.7 card parity + no gray media backgrounds */
.tktas-events-simple,
.tktas-events-grid,
.tktas-places-grid,
.tktas-vendor-events-grid,
.tktas-event-cards-grid { align-items: stretch !important; }
.tktas-events-simple .tktas-event-card,
.tktas-events-grid .tktas-event-card,
.tktas-vendor-events-grid .tktas-event-card,
.tktas-event-cards-grid .tktas-event-card,
.tktas-places-grid .tktas-place-card { height: 100% !important; }
.tktas-events-simple .tktas-card-link,
.tktas-events-grid .tktas-event-link,
.tktas-vendor-events-grid .tktas-event-card-link,
.tktas-event-cards-grid .tktas-card-link,
.tktas-places-grid .tktas-place-card { height: 100% !important; }
.tktas-card-image,
.tktas-event-img,
.tktas-place-img,
.tktas-event-card-image,
.tktas-card-no-image { background: #fff !important; }
.tktas-card-content,
.tktas-event-info,
.tktas-place-info,
.tktas-event-card-body { min-height: 100% !important; }
.tktas-card-content,
.tktas-event-info,
.tktas-place-info { justify-content: flex-start !important; }
.tktas-card-venue,
.tktas-event-venue,
.tktas-place-btns,
.tktas-event-price { margin-top: 0 !important; }


/* Phase 11: nested add-on and place school association polish */
.tktas-card-addons .tktas-card-addon-item strong,
.tktas-card-addons .price { font-weight: 700; }
.tktas-card-addon-list { margin: 0; }
.tktas-place-school-pill {
  display:inline-flex;
  align-items:center;
  padding:4px 8px;
  border-radius:999px;
  background:#f8fafc;
  border:1px solid #e2e8f0;
  color:#334155;
  font-size:12px;
}
