/* Styles for Tickera ticket products */
.woocommerce div.product .product_meta .tac-service-cost-note {
	display: block;
	margin: 0.15em 0 0;
	color: inherit;
	font-size: inherit;
	letter-spacing: inherit;
}

/* Event meta card (Producto artboard): icon rows + price / currency row */
.tac-event-details--card {
	margin: 0 0 1.25rem;
	padding: 0.9rem 1rem;
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.03);
}

.tac-event-details__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.55rem;
}

.tac-event-details__item {
	display: flex;
	align-items: flex-start;
	gap: 0.6rem;
	margin: 0;
	font-size: 0.95rem;
	line-height: 1.4;
}

.tac-event-details__icon {
	flex: none;
	margin-top: 0.15em;
	color: var(--gtango-gold, #C9A96E);
}

.tac-event-details__pricing {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: 0.8rem;
	padding-top: 0.8rem;
	border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.tac-event-details__pricing:first-child {
	margin-top: 0;
	padding-top: 0;
	border-top: 0;
}

.tac-event-details__price {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 0.5rem;
	min-width: 0;
}

.woocommerce div.product .tac-event-details__price p.price {
	margin: 0;
	font-size: clamp(1.35rem, 1vw + 1rem, 1.75rem);
	line-height: 1.1;
}

.tac-event-details__price-note {
	font-size: 0.78rem;
	color: rgba(255, 255, 255, 0.55);
}

.tac-event-details__stock {
	margin: 1rem 0 0;
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	font-weight: 600;
	font-size: 1rem;
}

.tac-event-picker {
	margin-top: 2rem;
	padding: clamp(1.25rem, 1.2vw + 1rem, 2rem);
	border: 1px solid rgba(198, 166, 100, 0.25);
	border-radius: 22px;
	background: rgba(255, 255, 255, 0.03);
}

.tac-event-picker[hidden] {
	display: none;
}

.tac-event-picker__title {
	margin: 0 0 1rem;
	font-size: clamp(1.1rem, 0.8vw + 0.95rem, 1.5rem);
	letter-spacing: 0.02em;
	color: #C6A664;
}

.tac-event-picker__toggle {
	margin-top: 1.25rem;
	padding: 0.85rem 1.5rem;
	border: 1px solid rgba(198, 166, 100, 0.45);
	border-radius: var(--ts-radius-sm, 4px);
	background: transparent;
	color: #C6A664;
	font-weight: 600;
	font-size: 0.95rem;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.tac-event-picker__toggle:hover,
.tac-event-picker__toggle:focus-visible {
	background: rgba(198, 166, 100, 0.15);
	color: #0c0c0c;
	border-color: #C6A664;
	outline: none;
}

.tac-event-picker__toggle[aria-expanded="true"] {
	background: rgba(198, 166, 100, 0.85);
	color: #0c0c0c;
}

.tac-event-picker__controls {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 1.25rem 1.5rem;
}

.tac-event-picker__control {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
}

.tac-event-picker__label {
	font-size: 0.8rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgba(198, 166, 100, 0.85);
}

.tac-event-picker__select {
	width: 100%;
	border: 1px solid rgba(198, 166, 100, 0.35);
	border-radius: 999px;
	background-color: rgba(255, 255, 255, 0.04);
	background-image: linear-gradient(45deg, transparent 50%, #C6A664 50%), linear-gradient(135deg, #C6A664 50%, transparent 50%);
	background-position: calc(100% - 20px) calc(50% - 3px), calc(100% - 14px) calc(50% - 3px);
	background-size: 7px 7px, 7px 7px;
	background-repeat: no-repeat;
	padding: 0.85rem 2.85rem 0.85rem 1.2rem;
	color: inherit;
	font-size: 1rem;
	appearance: none;
	-webkit-appearance: none;
	transition: border-color 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}

.tac-event-picker__select:focus-visible {
	border-color: #C6A664;
	background-color: rgba(198, 166, 100, 0.12);
	outline: 2px solid rgba(198, 166, 100, 0.35);
	outline-offset: 2px;
}

.tac-event-picker__select:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

.tac-event-picker__helper {
	margin-top: 1rem;
	font-size: 0.95rem;
	color: rgba(255, 255, 255, 0.78);
}

@media (max-width: 640px) {
	.tac-event-picker__controls {
		grid-template-columns: 1fr;
	}
}

.single-product form.cart .quantity {
	display: inline-flex;
	align-items: stretch;
	background: #050505;
	border: 1px solid rgba(255, 255, 255, 0.25);
	border-radius: 999px;
	overflow: hidden;
	transition: border-color 0.2s ease;
}

.single-product form.cart .quantity:hover {
	border-color: rgba(255, 255, 255, 0.45);
}

.single-product form.cart .quantity .qty {
	width: 3.125rem;
	padding: 0;
	text-align: center;
	border: 0;
	background: transparent;
	color: #fff;
	font-weight: 600;
	font-size: 1rem;
	appearance: textfield;
	-moz-appearance: textfield;
}

.single-product form.cart .quantity .qty::-webkit-outer-spin-button,
.single-product form.cart .quantity .qty::-webkit-inner-spin-button {
	margin: 0;
	appearance: none;
}

.single-product form.cart .quantity .minus,
.single-product form.cart .quantity .plus {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	border: 0;
	background: transparent;
	color: #f5f5f5;
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.single-product form.cart .quantity .minus:hover,
.single-product form.cart .quantity .plus:hover {
	background: #c8102e;
	color: #fff;
}

.single-product form.cart .quantity .minus:focus-visible,
.single-product form.cart .quantity .plus:focus-visible {
	outline: 2px solid #C6A664;
	outline-offset: -2px;
}

.single-product form.cart .quantity .minus:disabled,
.single-product form.cart .quantity .plus:disabled {
	cursor: not-allowed;
	opacity: 0.55;
}

@media (max-width: 480px) {
	.single-product form.cart .quantity {
		margin-bottom: 0.75rem;
	}
}

.single-product #tc_before_variation_form.stock.out-of-stock {
	display: none;
}

/* Styles for WooCommerce checkout */
.woocommerce-checkout form.checkout {
	box-sizing: border-box;
	background: #080808;
	border: 1px solid rgba(198, 166, 100, 0.28);
	border-radius: 22px;
	padding: clamp(1.75rem, 2vw + 1.5rem, 2.75rem);
	box-shadow: 0 24px 48px rgba(0, 0, 0, 0.55);
}

.woocommerce-checkout h3 {
	color: #C6A664;
	font-weight: 600;
	letter-spacing: 0.01em;
}

.woocommerce-checkout .woocommerce-billing-fields,
.woocommerce-checkout .woocommerce-additional-fields,
.woocommerce-checkout #order_review {
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(198, 166, 100, 0.18);
	border-radius: 16px;
	padding: clamp(1.35rem, 1.5vw + 1rem, 1.85rem);
	margin-bottom: clamp(1.5rem, 2vw, 2rem);
}

.woocommerce-checkout #order_review {
	background: rgba(255, 255, 255, 0.06);
}

.woocommerce-checkout form.checkout label {
	color: #f0f0f0;
	font-weight: 500;
	letter-spacing: 0.01em;
}

.woocommerce-checkout form.checkout .input-text,
.woocommerce-checkout form.checkout select,
.woocommerce-checkout form.checkout textarea {
	background: rgba(12, 12, 12, 0.95);
	border: 1px solid rgba(198, 166, 100, 0.28);
	border-radius: 12px;
	color: #f5f4f1;
	padding: 0.85rem 1rem;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.woocommerce-checkout form.checkout .input-text:focus,
.woocommerce-checkout form.checkout .input-text:focus-visible,
.woocommerce-checkout form.checkout select:focus,
.woocommerce-checkout form.checkout select:focus-visible,
.woocommerce-checkout form.checkout textarea:focus,
.woocommerce-checkout form.checkout textarea:focus-visible {
	border-color: #C6A664;
	box-shadow: 0 0 0 2px rgba(198, 166, 100, 0.25);
	outline: none;
}

.woocommerce-checkout form.checkout .input-text::placeholder,
.woocommerce-checkout form.checkout textarea::placeholder {
	color: rgba(245, 244, 241, 0.65);
}

.woocommerce-checkout .select2-container--default .select2-selection--single {
	background-color: rgba(12, 12, 12, 0.95);
	border: 1px solid rgba(198, 166, 100, 0.28);
	border-radius: 12px;
	height: auto;
	padding: 0.7rem 1rem;
}

.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
	color: #f5f4f1;
	line-height: 1.4;
	padding-left: 0;
}

.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 100%;
	right: 0.75rem;
	top: 50%;
	transform: translateY(-50%);
}

.woocommerce-checkout #payment {
	background: rgba(0, 0, 0, 0.78);
	border: 1px solid rgba(198, 166, 100, 0.32);
	border-radius: 18px;
	padding: clamp(1.5rem, 1.5vw + 1.25rem, 2rem);
}

.woocommerce-checkout #payment ul.payment_methods {
	border: 0;
	padding: 0;
	margin-bottom: 1.25rem;
}

.woocommerce-checkout #payment ul.payment_methods>li {
	background: transparent;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
	padding: 1rem 0;
}

.tac-attendee-copy-toggle {
	margin: 0 0 0.85rem;
}

.tac-attendee-copy-toggle__label {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	cursor: pointer;
	color: inherit;
	font-weight: 500;
}

.tac-attendee-copy-toggle__heading {
	margin: 0;
}

.tac-attendee-copy-toggle__checkbox {
	width: 1.05rem;
	height: 1.05rem;
	accent-color: #C6A664;
}

.woocommerce-checkout #payment ul.payment_methods>li:last-child {
	border-bottom: 0;
}

.woocommerce-checkout #payment .payment_box,
.woocommerce-checkout #payment div.payment_box {
	background: rgba(255, 255, 255, 0.07);
	border: 1px solid rgba(198, 166, 100, 0.22);
	color: #f5f4f1;
	border-radius: 12px;
	padding: 1rem 1.15rem;
	margin: 0.85rem 0 0 0;
}

.woocommerce-checkout #payment div.payment_box::before {
	display: none;
}

.woocommerce-checkout form.checkout .form-row {
	margin-bottom: 1.1rem;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table,
.woocommerce-checkout #order_review table.shop_table {
	background: transparent;
	border: 0;
	color: #f5f4f1;
}

.woocommerce-checkout #order_review table.shop_table th,
.woocommerce-checkout #order_review table.shop_table td {
	border-top: 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.woocommerce-checkout #order_review table.shop_table tbody tr:last-child td {
	border-bottom: 0;
}

.woocommerce-checkout #order_review table.shop_table tfoot th,
.woocommerce-checkout #order_review table.shop_table tfoot td {
	border-bottom: 0;
	color: #C6A664;
}

.woocommerce-checkout form.checkout .woocommerce-input-wrapper .description {
	color: rgba(245, 244, 241, 0.7);
}

@media (max-width: 768px) {
	.woocommerce-checkout form.checkout {
		padding: 1.5rem;
		margin-left: auto;
		margin-right: auto;
		width: 100%;
		max-width: 38rem;
		align-self: center;
	}

	body.woocommerce-checkout .uael-woo-checkout,
	body.woocommerce-checkout .uael-woo-checkout .column-layout-container {
		display: flex;
		flex-direction: column;
		align-items: center;
		margin-left: auto;
		margin-right: auto;
		width: 100%;
		max-width: 38rem;
	}

	body.woocommerce-checkout .uael-woo-checkout .column-layout-container>* {
		width: 100%;
	}

	.uael-woo-checkout .column-layout-container .single-col-1,
	.uael-woo-checkout .column-layout-container .single-col-2 {
		max-width: 100%;
		width: 100%;
		margin-left: 0;
		margin-right: 0;
		padding-left: 0;
		padding-right: 0;
	}

	.uael-woo-checkout .column-layout-container .single-col-2 {
		border-left: 0;
		border-right: 0;
	}

	.wc-block-checkout .wc-block-components-main {
		margin-left: auto;
		margin-right: auto;
		padding-left: 0;
		padding-right: 0;
	}

	.woocommerce-checkout .woocommerce-billing-fields,
	.woocommerce-checkout .woocommerce-additional-fields,
	.woocommerce-checkout #order_review {
		padding: 1.25rem;
	}

	.woocommerce-checkout #payment {
		padding: 1.25rem;
	}
}

@media (max-width: 540px) {
	.woocommerce-checkout form.checkout {
		border-radius: 16px;
	}

	.woocommerce-checkout .woocommerce-billing-fields,
	.woocommerce-checkout .woocommerce-additional-fields,
	.woocommerce-checkout #order_review {
		border-radius: 12px;
	}

	.woocommerce-checkout #payment {
		border-radius: 14px;
	}
}

/* B2: Clear Filters Button */
.tc-clear-filters-wrap {
	margin-top: 1rem;
	text-align: center;
}

.tc-clear-filters {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.65rem 1.25rem;
	border: 1px solid rgba(198, 166, 100, 0.4);
	border-radius: 999px;
	background: transparent;
	color: #C6A664;
	font-size: 0.875rem;
	font-weight: 500;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.tc-clear-filters:hover,
.tc-clear-filters:focus-visible {
	background: rgba(198, 166, 100, 0.15);
	border-color: #C6A664;
	color: #C6A664;
	text-decoration: none;
}

.tc-clear-filters:focus-visible {
	outline: 2px solid rgba(198, 166, 100, 0.5);
	outline-offset: 2px;
}

/* ==========================================================================
   Event Listing Border-Radius Overrides
   Unify with hero section aesthetic (4px interactive, 8px containers)
   ========================================================================== */

/* Filter dropdown buttons - override pill shape */
.tc-event-filter .ms-options-wrap>button,
.ts-event-browser .ms-options-wrap>button {
	border-radius: 4px;
}

/* Ensure filter button matches */
.tc-event-filter .tc-event-filter__field--button button,
#filter_events {
	border-radius: 4px;
}

/* ==========================================================================
   Phase A: Date Inputs - Dark Theme
   Override the .tc-event-datepicker-white class with high specificity
   ========================================================================== */

body .ts-event-browser .tc-event-datepicker,
body .tc-event-filter .tc-event-datepicker,
body .tc-event-datepicker-white,
body input.tc-event-datepicker-white,
body input.tc-event-datepicker,
.tc-events-wrap .tc-event-datepicker,
.tc-events-wrap input.tc-event-datepicker-white {
	background-color: var(--ts-surface-4, #272727);
	color: var(--ts-lightgrey, #e0e0e0);
	border: 1px solid var(--ts-border-color, rgba(255, 255, 255, 0.12));
	border-radius: 4px;
	padding: 12px 44px 12px 14px;
	font-size: 0.95rem;
	transition: border-color 0.2s ease, background-color 0.2s ease;
}

body .ts-event-browser .tc-event-datepicker:focus,
body .tc-event-filter .tc-event-datepicker:focus,
body .tc-event-datepicker-white:focus,
body input.tc-event-datepicker-white:focus {
	border-color: var(--ts-gold, #c6a664);
	background-color: var(--ts-surface-8, #2c2c2c);
	outline: none;
}

body .ts-event-browser .tc-event-datepicker::placeholder,
body .tc-event-filter .tc-event-datepicker::placeholder,
body .tc-event-datepicker-white::placeholder {
	color: var(--ts-mediumgrey-text, #a0a0a0);
	opacity: 0.7;
}

/* ==========================================================================
   Phase A: Dropdown Styling - Dark Theme
   ========================================================================== */

.tc-event-filter .ms-options-wrap>button,
.ts-event-browser .ms-options-wrap>button {
	background: var(--ts-surface-4, #272727);
	border: 1px solid var(--ts-border-color, rgba(255, 255, 255, 0.12));
	color: var(--ts-lightgrey, #e0e0e0);
	padding: 12px 44px 12px 14px;
	min-height: 46px;
	font-size: 0.95rem;
	font-weight: 500;
	letter-spacing: 0.02em;
	text-transform: none;
	transition: border-color 0.2s ease, background-color 0.2s ease;
}

.tc-event-filter .ms-options-wrap>button:hover,
.ts-event-browser .ms-options-wrap>button:hover {
	border-color: var(--ts-gold, #c6a664);
	background: var(--ts-surface-8, #2c2c2c);
}

.tc-event-filter .ms-options-wrap.ms-active>button,
.ts-event-browser .ms-options-wrap.ms-active>button {
	border-color: var(--ts-gold, #c6a664);
	background: var(--ts-surface-8, #2c2c2c);
}

/* Dropdown arrow */
.tc-event-filter .ms-options-wrap>button::after,
.ts-event-browser .ms-options-wrap>button::after {
	border-top-color: var(--ts-gold, #c6a664);
}

/* Dropdown menu */
.tc-event-filter .ms-options-wrap>.ms-options,
.ts-event-browser .ms-options-wrap>.ms-options {
	background: var(--ts-surface-8, #2c2c2c);
	border: 1px solid var(--ts-border-color, rgba(255, 255, 255, 0.12));
	border-radius: 8px;
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.5);
}

.tc-event-filter .ms-options-wrap .ms-options label,
.ts-event-browser .ms-options-wrap .ms-options label {
	color: var(--ts-lightgrey, #e0e0e0);
}

.tc-event-filter .ms-options-wrap .ms-options label:hover,
.ts-event-browser .ms-options-wrap .ms-options label:hover {
	background: rgba(198, 166, 100, 0.15);
}

/* ==========================================================================
   Phase A: Compact Filters
   ========================================================================== */

.tc-event-filter {
	gap: 12px;
	margin: 0 0 20px;
	padding-bottom: 20px;
	border-bottom: 1px solid var(--ts-border-color, rgba(255, 255, 255, 0.12));
}

.tc-event-filter__row {
	gap: 12px;
}

.tc-event-filter__label {
	font-size: 0.7rem;
	letter-spacing: 0.1em;
	margin-bottom: 4px;
	color: var(--ts-mediumgrey-text, #a0a0a0);
	text-transform: uppercase;
}

/* Hide empty label spacer */
.tc-event-filter__field--button .tc-event-filter__label {
	display: none;
}

/* Compact button */
#filter_events {
	min-height: 46px;
	padding: 12px 24px;
	font-size: 0.85rem;
}

/* ==========================================================================
   Phase A: Card Hover States
   ========================================================================== */

.tc-single-event {
	transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
	border: 1px solid var(--ts-border-color, rgba(255, 255, 255, 0.12));
}

.tc-single-event:hover {
	transform: translateY(-6px);
	box-shadow: 0 16px 48px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(198, 166, 100, 0.3);
	border-color: rgba(198, 166, 100, 0.4);
}

/* CTA button enhancement on hover */
.tc-single-event .tc-event-cta,
.tc-single-event .tc-view-event,
.tc-single-event a.button {
	opacity: 0.85;
	transition: opacity 0.2s ease, background-color 0.2s ease, transform 0.2s ease;
}

.tc-single-event:hover .tc-event-cta,
.tc-single-event:hover .tc-view-event,
.tc-single-event:hover a.button {
	opacity: 1;
	background: var(--ts-gold, #c6a664);
	transform: translateY(-2px);
}

/* ==========================================================================
   Phase C: Responsive Grid (1-2-3-4 columns)
   ========================================================================== */

.tc-display-filter-events {
	display: grid;
	grid-template-columns: 1fr;
	gap: 20px;
}

/* 2 columns - tablet */
@media (min-width: 600px) {
	.tc-display-filter-events {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* 3 columns - desktop */
@media (min-width: 900px) {
	.tc-display-filter-events {
		grid-template-columns: repeat(3, 1fr);
	}
}

/* 4 columns - wide */
@media (min-width: 1400px) {
	.tc-display-filter-events {
		grid-template-columns: repeat(4, 1fr);
		gap: 24px;
	}
}

/* Consistent card heights */
.tc-single-event {
	display: flex;
	flex-direction: column;
	height: 100%;
}

.tc-single-event .tc-event-content-wrap {
	flex: 1;
	display: flex;
	flex-direction: column;
}

/* Fixed aspect ratio thumbnails — the poster is shown COMPLETE (contain) on
   a gradient band instead of cropped (UXW-004, Home artboard). The theme's
   components/cards.css paints the band. */
.tc-single-event .tc-get-featured-image {
	aspect-ratio: 4 / 5;
	overflow: hidden;
}

.tc-single-event .tc-get-featured-image img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

/* Line-clamp titles */
.tc-single-event h4,
.tc-single-event .tc-event-title {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	line-height: 1.3;
}

/* ==========================================================================
   Empty State Styling
   ========================================================================== */

.tc-no-results,
.tc-events-empty-state {
	grid-column: 1 / -1;
	text-align: center;
	padding: 60px 24px;
	background: var(--ts-surface-1, #1e1e1e);
	border: 1px dashed var(--ts-border-color, rgba(255, 255, 255, 0.12));
	border-radius: 8px;
}

.tc-no-results strong,
.tc-events-empty-state__title {
	display: block;
	font-size: 1.25rem;
	color: #fff;
	margin-bottom: 8px;
}

.tc-no-results p,
.tc-events-empty-state__text {
	color: var(--ts-mediumgrey-text, #a0a0a0);
	margin-bottom: 24px;
}

.tc-events-empty-state__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
}

.tc-events-empty-state__action {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 10px 18px;
	background: transparent;
	border: 1px solid rgba(198, 166, 100, 0.4);
	border-radius: 4px;
	color: var(--ts-gold, #c6a664);
	font-size: 0.875rem;
	font-weight: 500;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.2s ease, border-color 0.2s ease;
}

.tc-events-empty-state__action:hover {
	background: rgba(198, 166, 100, 0.15);
	border-color: var(--ts-gold, #c6a664);
	color: var(--ts-gold, #c6a664);
}

/* ==========================================================================
   Title Row Above Cards
   ========================================================================== */

.tc-events-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 20px;
}

.tc-events-header__title {
	font-family: var(--font-headings, 'Playfair Display', serif);
	font-size: 1.5rem;
	font-weight: 600;
	color: #fff;
	margin: 0;
	display: flex;
	align-items: center;
	gap: 12px;
}

.tc-events-header__count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 28px;
	height: 28px;
	padding: 0 10px;
	background: var(--ts-gold, #c6a664);
	color: var(--ts-black, #121212);
	font-size: 0.8rem;
	font-weight: 700;
	border-radius: 4px;
}

/* ==========================================================================
   Card Info Strip (Date/Location/Price)
   ========================================================================== */

.tc-event-info-strip {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 12px 0;
	border-top: 1px solid var(--ts-border-color, rgba(255, 255, 255, 0.08));
	margin-top: auto;
}

.tc-event-info-strip__row {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 0.875rem;
}

.tc-event-info-strip__icon {
	width: 16px;
	height: 16px;
	opacity: 0.7;
	flex-shrink: 0;
}

.tc-event-info-strip__date {
	color: var(--ts-gold, #c6a664);
	font-weight: 600;
}

.tc-event-info-strip__location {
	color: var(--ts-mediumgrey-text, #a0a0a0);
}

.tc-event-info-strip__price {
	color: #fff;
	font-weight: 600;
}

.tc-event-info-strip__price-label {
	color: var(--ts-mediumgrey-text, #a0a0a0);
	font-weight: 400;
	font-size: 0.8rem;
}

/* ==========================================================================
   Event Short Description (excerpt below title)
   ========================================================================== */

.tac-event-excerpt {
	margin: 0.5rem 0 1rem;
	color: rgba(255, 255, 255, 0.65);
	font-size: 0.95rem;
	line-height: 1.55;
}

.tac-event-excerpt p {
	margin: 0 0 0.35rem;
}

.tac-event-excerpt p:last-child {
	margin-bottom: 0;
}

/* ==========================================================================
   Event Full Description (below ticket panel)
   ========================================================================== */

.tac-event-description {
	margin: 2rem 0;
	padding: clamp(1.5rem, 2vw + 1rem, 2.5rem);
	background: #1a1a1a;
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 12px;
	/* Break out of the theme's two-column grid on div.product */
	grid-column: 1 / -1;
	width: 100%;
	min-width: 0;
	overflow: hidden;
	clear: both;
	float: none;
}

.tac-event-description__title {
	margin: 0 0 1.25rem;
	font-family: var(--font-headings, 'Playfair Display', Georgia, serif); /* MOE-3-130: matched the other section headings */
	font-size: clamp(1.15rem, 1vw + 0.85rem, 1.6rem);
	font-weight: 700;
	color: #C6A664;
	letter-spacing: 0.02em;
	padding-bottom: 1rem;
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.tac-event-description__body {
	color: rgba(255, 255, 255, 0.75);
	font-size: 0.95rem;
	line-height: 1.7;
}

.tac-event-description__body p {
	margin: 0 0 1rem;
}

.tac-event-description__body p:last-child {
	margin-bottom: 0;
}

.tac-event-description__body a {
	color: #c9a96e;
	text-decoration: underline;
	text-decoration-color: rgba(201, 169, 110, 0.4);
	text-underline-offset: 2px;
	transition: text-decoration-color 0.2s ease;
}

.tac-event-description__body a:hover {
	text-decoration-color: #c9a96e;
}

.tac-event-description__body h2,
.tac-event-description__body h3,
.tac-event-description__body h4 {
	color: #fff;
	margin: 1.5rem 0 0.75rem;
}

.tac-event-description__body ul,
.tac-event-description__body ol {
	padding-left: 1.5rem;
	margin: 0 0 1rem;
}

.tac-event-description__body li {
	margin-bottom: 0.35rem;
}

.tac-event-description__body img {
	max-width: 100%;
	height: auto;
	border-radius: 8px;
}

@media (max-width: 768px) {
	.tac-event-description {
		padding: 1.25rem;
		border-radius: 10px;
	}
}

/* ==========================================================================
   Ticket Selector Panel (Passline-style)
   ========================================================================== */

.ts-ticket-panel {
	margin: 2rem 0;
	padding: clamp(1.5rem, 2vw + 1rem, 2.5rem);
	background: #1a1a1a;
	border: 1px solid rgba(201, 169, 110, 0.25);
	border-top: 3px solid #c9a96e;
	border-radius: 12px;
	box-shadow: 0 16px 48px rgba(0, 0, 0, 0.4);
	/* Break out of the theme's two-column grid on div.product */
	grid-column: 1 / -1;
	/* Create a new block formatting context so the grid's minmax(0, ...) */
	/* doesn't propagate zero-width to children */
	width: 100%;
	min-width: 0;
	overflow: hidden;
	/* Clear floated gallery + summary columns on float-based layouts */
	clear: both;
	float: none;
}

/* Header */
.ts-ticket-panel__header {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 1.5rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.ts-ticket-panel__title {
	margin: 0;
	font-size: clamp(1.15rem, 1vw + 0.85rem, 1.6rem);
	font-weight: 700;
	color: #C6A664;
	letter-spacing: 0.02em;
}

/* Date control */
.ts-ticket-panel__date-control {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.ts-ticket-panel__date-label {
	font-size: 0.8rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgba(198, 166, 100, 0.85);
	white-space: nowrap;
}

.ts-ticket-panel__date-select {
	min-width: 200px;
	border: 1px solid rgba(201, 169, 110, 0.4);
	border-radius: 8px;
	background-color: #222;
	background-image: linear-gradient(45deg, transparent 50%, #c9a96e 50%), linear-gradient(135deg, #c9a96e 50%, transparent 50%);
	background-position: calc(100% - 16px) calc(50% - 3px), calc(100% - 10px) calc(50% - 3px);
	background-size: 6px 6px, 6px 6px;
	background-repeat: no-repeat;
	padding: 0.65rem 2.5rem 0.65rem 1rem;
	color: #f5f5f5;
	font-size: 0.95rem;
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
	transition: border-color 0.2s ease, background-color 0.2s ease;
}

.ts-ticket-panel__date-select:focus-visible {
	border-color: #c9a96e;
	background-color: rgba(201, 169, 110, 0.1);
	outline: 2px solid rgba(201, 169, 110, 0.35);
	outline-offset: 2px;
}

/* Ticket rows */
.ts-ticket-panel__rows {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.ts-ticket-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.25rem 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.ts-ticket-row:last-child {
	border-bottom: 0;
}

.ts-ticket-row--sold-out {
	opacity: 0.45;
	pointer-events: none;
}

.ts-ticket-row__info {
	flex: 1;
	min-width: 0;
}

.ts-ticket-row__name {
	margin: 0 0 0.15rem;
	font-size: 1.05rem;
	font-weight: 600;
	color: #fff;
	line-height: 1.3;
}

.ts-ticket-row__desc {
	margin: 0 0 0.3rem;
	font-size: 0.82rem;
	color: rgba(255, 255, 255, 0.55);
	line-height: 1.35;
	/* Clamp long descriptions to 2 lines */
	display: -webkit-box;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.ts-ticket-row__price {
	font-size: 1.1rem;
	font-weight: 700;
	color: #c9a96e;
}

.ts-ticket-row__price del {
	color: rgba(255, 255, 255, 0.35);
	font-weight: 400;
}

.ts-ticket-row__price ins {
	text-decoration: none;
	color: #c9a96e;
}

.ts-ticket-row__sold-out-label {
	display: inline-block;
	padding: 0.35rem 0.85rem;
	border: 1px solid rgba(255, 255, 255, 0.15);
	border-radius: 6px;
	color: rgba(255, 255, 255, 0.5);
	font-size: 0.8rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

/* Qty Selector */
.ts-ticket-row__qty {
	flex-shrink: 0;
}

.ts-qty-selector {
	display: inline-flex;
	align-items: center;
	border: 1px solid rgba(201, 169, 110, 0.4);
	border-radius: 8px;
	overflow: hidden;
	background: #222;
	height: 40px;
}

.ts-qty-selector__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	box-sizing: border-box;
	border: 0;
	background: transparent;
	color: #c9a96e;
	font-size: 1.2rem;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease;
	user-select: none;
	-webkit-user-select: none;
}

.ts-qty-selector__btn:hover:not(:disabled) {
	background: rgba(201, 169, 110, 0.2);
}

.ts-qty-selector__btn:active:not(:disabled) {
	background: rgba(201, 169, 110, 0.35);
}

.ts-qty-selector__btn:disabled {
	opacity: 0.35;
	cursor: not-allowed;
}

.ts-qty-selector__btn:focus-visible {
	outline: 2px solid #c9a96e;
	outline-offset: -2px;
}

/* S4b: only the padding ever rode priority against theme-core's
   input[type=number] blanket — the scoped (0,2,0) variant below carries it
   alone; surface/border/type stay with theme-core, the pre-sweep state. */
.ts-qty-selector .ts-qty-selector__input {
	padding: 0;
}

.ts-qty-selector__input {
	width: 40px;
	height: 40px;
	box-sizing: border-box;
	padding: 0;
	margin: 0;
	border: 0;
	border-left: 1px solid rgba(201, 169, 110, 0.2);
	border-right: 1px solid rgba(201, 169, 110, 0.2);
	background: transparent;
	color: #fff;
	font-size: 1rem;
	font-weight: 600;
	text-align: center;
	line-height: 40px;
	appearance: textfield;
	-moz-appearance: textfield;
}

.ts-qty-selector__input::-webkit-outer-spin-button,
.ts-qty-selector__input::-webkit-inner-spin-button {
	margin: 0;
	appearance: none;
	-webkit-appearance: none;
	display: none;
}

/* Prevent the theme's product-quantity.js from injecting extra ± buttons */
.ts-qty-selector .gtango-qty,
.ts-qty-selector .gtango-qty__btn {
	display: none;
}

/* Footer */
.ts-ticket-panel__footer {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-top: 1.5rem;
	padding-top: 1.25rem;
	border-top: 1px solid rgba(255, 255, 255, 0.1);
}

/* Currency switcher sits next to Total, COMPRAR pushed to the right */
.ts-ticket-panel__footer>.ts-product-currency-switcher {
	margin-right: auto;
	margin-left: 1rem;
}

.ts-ticket-panel__total {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
}

.ts-ticket-panel__total-label {
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: rgba(255, 255, 255, 0.55);
}

.ts-ticket-panel__total-amount {
	font-size: 1.5rem;
	font-weight: 700;
	color: #c9a96e;
}

.ts-comprar-btn {
	padding: 0.95rem 2.5rem;
	border: 0;
	border-radius: 8px;
	/* S4b: aligned to the tokens BEFORE the gold rule lost its priority —
	   the old #c9a96e/#111 would have surfaced as a 3-unit drift */
	background: var(--ts-gold);
	color: var(--ts-black);
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color 0.2s ease, transform 0.15s ease, opacity 0.2s ease;
}

.ts-comprar-btn:hover:not(:disabled) {
	background: var(--ts-gold-hover, #E8C37E); /* S4b: the hover gold the old forced rule painted */
	transform: translateY(-1px);
}

.ts-comprar-btn:active:not(:disabled) {
	transform: translateY(0);
}

.ts-comprar-btn:disabled {
	opacity: 0.45;
	cursor: not-allowed;
}

.ts-comprar-btn--loading {
	position: relative;
	pointer-events: none;
}

/* External product redirect: summary placement */
.ts-comprar-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.35em; /* flex drops the space before the ↗ span */
	text-decoration: none;
	color: #111;
}

.ts-comprar-link:hover {
	color: #111;
	text-decoration: none;
}

.ts-comprar-link--summary {
	display: flex;
	width: 100%;
	margin-top: 1.25rem;
	text-align: center;
}

/* Hide default WooCommerce add-to-cart form when external redirect button is shown */
body.single-product:has(.ts-comprar-link--summary) div.product form.cart {
	display: none;
}

/* Hide sticky CTA bar for external redirect products */
body:has(.ts-comprar-link--summary) .ts-sticky-cta,
body:has(.ts-comprar-link--summary) .storefront-sticky-add-to-cart {
	display: none;
}

/* --- Mobile: fixed bottom bar --- */
@media (max-width: 768px) {
	.ts-ticket-panel {
		padding: 1.25rem;
		border-radius: 10px;
	}

	.ts-ticket-panel__header {
		flex-direction: column;
		align-items: flex-start;
	}

	.ts-ticket-panel__date-select {
		width: 100%;
	}

	.ts-ticket-row {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.75rem;
	}

	.ts-ticket-row__qty {
		align-self: flex-end;
	}

	.ts-ticket-panel__footer {
		position: fixed;
		bottom: 0;
		left: 0;
		right: 0;
		z-index: 9999;
		margin: 0;
		padding: 1rem 1.25rem;
		background: #111;
		border-top: 2px solid #c9a96e;
		box-shadow: 0 -8px 32px rgba(0, 0, 0, 0.7);
	}

	/* Swap currency ↔ total: currency first (left), total second (right) */
	.ts-ticket-panel__footer>.ts-product-currency-switcher {
		order: -1;
		margin-right: auto;
		margin-left: 0;
	}

	.ts-ticket-panel__footer>.ts-ticket-panel__total {
		order: 0;
		margin-left: auto;
		text-align: right;
	}

	.ts-ticket-panel__footer>.ts-comprar-btn {
		order: 1;
		width: 100%;
	}

	/* Add bottom padding to body so footer doesn't hide content */
	body.single-product {
		padding-bottom: 100px;
	}

	/* the seated footer carries "Desde $ …" + a full-width button (~170px) */
	body.single-product:has(.ts-ticket-panel__footer--seating) {
		padding-bottom: 190px;
	}
}

/* Hide the theme's default sticky CTA when ticket panel is active (all viewports) */
body:has(.ts-ticket-panel) .ts-sticky-cta,
body:has(.ts-ticket-panel) .storefront-sticky-add-to-cart {
	display: none;
}

/* Also hide the default WooCommerce add-to-cart form when ticket panel is present */
body.single-product:has(.ts-ticket-panel) div.product form.cart {
	display: none;
}

/* Multiple ticket types: the meta card shows "Desde <lowest price>" (PHP),
   so the summary price no longer needs hiding. */
.tac-event-details__from {
	font-size: 0.6em;
	font-weight: 500;
	color: rgba(255, 255, 255, 0.6);
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

/* MOE-1-001/023/057/064/066: on phones the floating WhatsApp bubble sat over
   the ticket steppers and the price table however far it was pushed up. The
   product page carries its own WhatsApp link in the meta card instead. */
@media (max-width: 768px) {

	body.single-product #ht-ctc-chat,
	body.single-product .ht-ctc-chat {
		display: none;
	}
}

/* Meta-card CTA (MOE-1-008/077): desktop only — on phones the ticket panel is
   the next thing under the card and carries the fixed footer. */
.tac-event-details__cta {
	display: none;
	width: 100%;
	margin-top: 1rem;
	padding: 0.9rem 1.5rem;
	border-radius: 8px;
	background: #c9a96e;
	color: #121212;
	font-family: var(--font-body, 'Inter', sans-serif);
	font-size: 0.85rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-align: center;
	text-decoration: none;
	transition: background-color 0.2s ease;
}

.tac-event-details__cta:hover,
.tac-event-details__cta:focus-visible {
	background: #e8c37e;
	color: #121212;
}

@media (min-width: 769px) {
	.tac-event-details__cta {
		display: block;
	}
}

.tac-event-details__whatsapp {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	margin-top: 0.85rem;
	font-size: 0.8rem;
	color: rgba(255, 255, 255, 0.72);
	text-decoration: none;
	min-height: 44px;
}

.tac-event-details__whatsapp svg {
	flex: none;
	color: #c9a96e;
}

.tac-event-details__whatsapp:hover span,
.tac-event-details__whatsapp:focus-visible span {
	color: #c9a96e;
	text-decoration: underline;
}

/* MOE-1-188/197/209/214/225: WooCommerce's "Categorías: …" line duplicated the
   chips above the title with a different (raw) taxonomy set. Chips only. */
/* S4b: Storefront's woocommerce.css hits (0,4,1) — body-prefix one level up. */
.single-product .product_meta .posted_in,
.single-product .product_meta .tagged_as,
body.single-product div.product .product_meta .posted_in,
body.single-product div.product .product_meta .tagged_as {
	display: none;
}

/* MOE-1-069/191/192: redirect products showed a quantity stepper for a cart
   they never reach. */
body.single-product:has(.wc-external-redirect-flag) div.product form.cart .quantity,
body.single-product:has(.wc-external-redirect-flag) div.product form.cart .ts-quantity-wrapper {
	display: none;
}

/* Seated footer: fixed bar on phones (same rule as the qty panel footer). Since
   959d34b5 it holds the ONLY seat-map button, so it must stay visible at every
   width (it was hidden at 769-1023px: no way to open the map on tablets). */

.ts-ticket-panel__footer--seating .ts-ticket-panel__total-amount .woocommerce-Price-amount {
	color: #c9a96e;
}

/* ==========================================================================
   Seating Chart Integration (Dark Theme)
   ========================================================================== */

/* The "Pick your seat(s)" trigger button. Since 959d34b5 it is also the
   seated .ts-comprar-btn (the ONE primary action), and this (0,2,0) rule beats
   .ts-comprar-btn (0,1,0): use the tokens, not the legacy #c9a96e/#111. */
.ts-ticket-panel--seating .tc_seating_map_button {
	display: block;
	width: 100%;
	padding: 1rem 2rem;
	border: 0;
	border-radius: 8px;
	background: var(--ts-gold, #c6a664);
	color: var(--ts-black, #121212);
	font-size: 1.05rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color 0.2s ease, transform 0.15s ease;
	margin-top: 0.5rem;
}

.ts-ticket-panel--seating .tc_seating_map_button:hover {
	background: var(--ts-gold-hover, #e8c37e);
	transform: translateY(-1px);
}

.ts-ticket-panel--seating .tc_seating_map_button:active {
	transform: translateY(0);
}

/* Seating map container (rendered in wp_footer as overlay) */
.tc_seating_map {
	background: #1a1a1a !important;
}

/* Legend sidebar */
.tc-seating-legend-wrap {
	background: #1a1a1a !important;
	border-right: 1px solid rgba(255, 255, 255, 0.1) !important;
}

.tc-seating-legend {
	background: #1a1a1a !important;
	color: rgba(255, 255, 255, 0.85) !important;
}

.tc-seating-legend ul li {
	color: rgba(255, 255, 255, 0.75) !important;
}

.tc-seating-legend .tc-legend-arrow {
	color: rgba(255, 255, 255, 0.6) !important;
}

/* Bottom controls bar */
.tc-bottom-controls {
	background: #111 !important;
	border-top: 2px solid #c9a96e !important;
}

.tc-bottom-controls-inside {
	background: #111 !important;
}

.tc-seating-tooltips p {
	color: rgba(255, 255, 255, 0.55) !important;
}

/* Subtotal & cart button */
.tc-seatchart-subtotal {
	color: rgba(255, 255, 255, 0.75) !important;
}

.tc-seatchart-subtotal strong {
	color: #c9a96e !important;
}

.tc-checkout-button {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	padding: 0.85rem 2rem !important;
	border: 0 !important;
	border-radius: 8px !important;
	background: #c9a96e !important;
	color: #111 !important;
	font-size: 0.95rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.06em !important;
	text-transform: uppercase !important;
	text-decoration: none !important;
	cursor: pointer;
	transition: background-color 0.2s ease, transform 0.15s ease;
}

.tc-checkout-button:hover {
	background: #d4b87a !important;
	transform: translateY(-1px);
	color: #111 !important;
	text-decoration: none !important;
}

/* Modals (seat details, add to cart, etc.) */
.tc-modal-wrap .tc-modal,
.tc-modal-wrap .tc-added-to-cart,
.tc-modal-wrap .tc-modal-woobridge {
	background: #1e1e1e !important;
	border: 1px solid rgba(201, 169, 110, 0.3) !important;
	border-radius: 12px !important;
	color: #fff !important;
	box-shadow: 0 16px 48px rgba(0, 0, 0, 0.6) !important;
}

.tc-modal h5,
.tc-added-to-cart h5,
.tc-modal-woobridge h5 {
	color: #fff !important;
}

.tc-modal .tc_regular_modal_price,
.tc-added-to-cart .tc_regular_modal_price,
.tc-modal-woobridge .tc_regular_modal_price {
	color: #c9a96e !important;
}

.tc-modal .tc_cart_button,
.tc-modal .ui-button:not(.tc_modal_close_dialog),
.tc-added-to-cart .ui-button:not(.tc_modal_close_dialog) {
	background: #c9a96e !important;
	color: #111 !important;
	border: 0 !important;
	border-radius: 8px !important;
	font-weight: 700 !important;
	padding: 0.75rem 1.5rem !important;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	transition: background-color 0.2s ease;
}

.tc-modal .tc_cart_button:hover,
.tc-modal .ui-button:not(.tc_modal_close_dialog):hover,
.tc-added-to-cart .ui-button:not(.tc_modal_close_dialog):hover {
	background: #d4b87a !important;
}

.tc-added-to-cart .tc_remove_from_cart_button {
	background: transparent !important;
	color: #c9a96e !important;
	border: 1px solid rgba(201, 169, 110, 0.4) !important;
	border-radius: 8px !important;
	font-weight: 600 !important;
	padding: 0.65rem 1.25rem !important;
	transition: background-color 0.2s ease, border-color 0.2s ease;
}

.tc-added-to-cart .tc_remove_from_cart_button:hover {
	background: rgba(201, 169, 110, 0.15) !important;
	border-color: #c9a96e !important;
}

/* Native seat-dialog close: named 44px control, clear of global button chrome. */
.tc-modal button.tc_modal_close_dialog,
.tc-modal button.tc_modal_close_dialog:active,
.tc-modal button.tc_modal_close_dialog:focus,
.tc-added-to-cart button.tc_modal_close_dialog,
.tc-added-to-cart button.tc_modal_close_dialog:active,
.tc-added-to-cart button.tc_modal_close_dialog:focus,
.tc-modal-woobridge button.tc_modal_close_dialog,
.tc-modal-woobridge button.tc_modal_close_dialog:active,
.tc-modal-woobridge button.tc_modal_close_dialog:focus,
button.tc_modal_close_dialog.tc_modal_close_dialog {
	position: absolute !important;
	top: 8px !important;
	right: 8px !important;
	width: 44px !important;
	height: 44px !important;
	min-width: 44px !important;
	min-height: 44px !important;
	padding: 0 !important;
	margin: 0 !important;
	background: transparent !important;
	background-image: none !important;
	border: 1px solid var(--ts-border-color, #47413a) !important;
	box-shadow: none !important;
	border-radius: 8px !important;
	color: var(--ts-gold, #c6a664) !important;
	font-size: 22px !important;
	line-height: 44px !important;
	text-align: center !important;
	cursor: pointer;
	display: flex !important;
	align-items: center;
	justify-content: center;
	z-index: 200;
	-webkit-appearance: none !important;
	appearance: none !important;
}

.tc-modal button.tc_modal_close_dialog:hover,
.tc-added-to-cart button.tc_modal_close_dialog:hover,
.tc-modal-woobridge button.tc_modal_close_dialog:hover,
button.tc_modal_close_dialog.tc_modal_close_dialog:hover {
	color: #fff !important;
	background: rgba(255, 255, 255, 0.1) !important;
	background-color: rgba(255, 255, 255, 0.1) !important;
}

.tc_modal_close_dialog i {
	color: inherit !important;
	font-size: 22px !important;
	line-height: 1 !important;
}

/* Fullscreen close (✕) in top-right */
.tc-full-screen {
	color: rgba(255, 255, 255, 0.7) !important;
}

/* Zoom controls */
.tc-zoom-wrap {
	background: #1a1a1a !important;
	border: 1px solid rgba(255, 255, 255, 0.1) !important;
	border-radius: 6px !important;
}

.tc-full-screen:hover {
	color: #fff !important;
}

/* Cart seat labels in cart/checkout */
.tc-cart-seat-wrap {
	margin-top: 0.35rem;
}

.tc-single-cart-seat {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 0.2rem 0.5rem;
	background: rgba(201, 169, 110, 0.12);
	border-radius: 4px;
	font-size: 0.82rem;
	color: #c9a96e;
	margin: 2px 0;
}

.tc_cart_seat_remove {
	cursor: pointer;
	opacity: 0.6;
	transition: opacity 0.2s ease;
}

.tc_cart_seat_remove:hover {
	opacity: 1;
}

/* --- Bottom controls bar alignment --- */
.tc-bottom-controls-inside {
	display: flex !important;
	align-items: center;
	min-height: 56px;
}

.tc-seating-tooltips {
	flex: 1;
	text-align: center;
}

.tc-seatchart-cart-info {
	display: flex !important;
	align-items: center;
	position: static !important;
	float: none !important;
	margin-left: auto;
}

.tc-checkout-bar {
	display: flex !important;
	align-items: center;
	gap: 12px;
}

.tc-seatchart-subtotal {
	white-space: nowrap;
}

/* --- Mobile bottom bar --- */
@media (max-width: 768px) {
	.tc-seating-tooltips {
		display: none !important;
	}

	.tc-bottom-controls-inside {
		justify-content: space-between;
		padding: 0 8px;
	}

	.tc-checkout-bar {
		gap: 8px;
		flex-shrink: 0;
	}

	.tc-checkout-button {
		padding: 0.7rem 1.2rem !important;
		font-size: 0.85rem !important;
	}

	/* Modal sizing on mobile */
	.ui-dialog {
		width: calc(100vw - 24px) !important;
		max-width: 420px !important;
		left: 50% !important;
		transform: translateX(-50%);
	}

	.tc-modal,
	.tc-added-to-cart,
	.tc-modal-woobridge {
		width: 100% !important;
		max-width: 100% !important;
	}

	/* S4b: the old "top-left pill" mobile zoom block (zoom-wrap + plus/minus
	   internals + slider hide) was DELETED here — seating.css's bottom-right
	   thumb-zone pill (the accepted design) had out-ranked it for months and
	   the sweep's region-restore briefly revived it. */

	/* -------------------------------------------------------
	   Legend → collapsible drawer above the bottom bar
	   Collapsed = compact badge row. Expanded = full price list.
	   ------------------------------------------------------- */
	.tc-seating-legend-wrap {
		position: fixed !important;
		top: auto !important;
		/* Sits above the full bottom bar (info row ~62px + checkout bar ~66px) */
		bottom: calc(128px + env(safe-area-inset-bottom, 0px)) !important;
		left: 0 !important;
		right: 0 !important;
		width: 100% !important;
		max-height: 50px !important;   /* collapsed: just one row of price pills */
		padding: 0 !important;
		margin: 0 !important;
		display: block !important;
		visibility: visible !important;
		opacity: 1 !important;
		transform: none !important;
		background: rgba(17, 17, 17, 0.96) !important;
		border-right: none !important;
		border-top: 1px solid rgba(201, 169, 110, 0.25) !important;
		box-shadow: 0 -2px 12px rgba(0, 0, 0, 0.4) !important;
		/* Above .tc-wrapper (999999999) but below .tc-bottom-controls (1000000010) */
		z-index: 1000000005 !important;
		overflow: hidden !important;
		-webkit-overflow-scrolling: touch;
		transition: max-height 0.3s ease !important;
	}

	/* Expanded state — toggled by JS (doubled class for specificity) */
	.tc-seating-legend-wrap.tc-seating-legend-wrap.tc-legend-expanded {
		max-height: 300px !important;
		overflow-y: auto !important;
	}

	/* MOE-1-073: the collapsed strip scrolls sideways but clipped the third
	   chip flat with no cue — a right-edge fade says "there is more". */
	.tc-seating-legend-wrap:not(.tc-legend-expanded)::after {
		content: '';
		position: absolute;
		top: 0;
		right: 0;
		bottom: 0;
		width: 44px;
		pointer-events: none;
		background: linear-gradient(to right, rgba(17, 17, 17, 0), rgba(17, 17, 17, 0.96) 70%);
	}

	/* MOE-1-071: the expanded legend rose over the zoom pill; while the reader
	   has the legend open the zoom control steps aside. */
	body:has(.ts-mobile-legend-btn.ts-legend-active) .tc-zoom-wrap,
	body:has(.tc-seating-legend-wrap.tc-legend-expanded) .tc-zoom-wrap {
		opacity: 0 !important;
		pointer-events: none !important;
		transition: opacity 0.2s ease;
	}

	/* Hide the ::before header — the LEYENDA button in the info row
	   serves as the toggle handle instead */
	.tc-seating-legend-wrap::before {
		display: none !important;
	}

	/* Hide the toggle arrow from the plugin */
	.tc-legend-arrow {
		display: none !important;
	}

	.tc-seating-legend {
		width: 100% !important;
		display: block !important;
		overflow: visible !important;
		padding: 0 !important;
	}

	/* Collapsed state: a visible horizontal price strip. */
	.tc-seating-legend ul {
		display: flex !important;
		flex-wrap: nowrap !important;
		gap: 6px;
		float: none !important;
		margin: 0 !important;
		padding: 0 12px 10px !important;
		list-style: none !important;
		overflow-x: auto !important;
		overflow-y: hidden !important;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: thin;
	}

	.tc-seating-legend-wrap.tc-legend-expanded .tc-seating-legend ul {
		flex-wrap: wrap !important;
		overflow-x: visible !important;
		overflow-y: visible !important;
	}

	.tc_seating_map .tc-seating-legend ul li {
		display: flex !important;
		align-items: center;
		gap: 6px;
		width: auto !important;
		max-width: min(78vw, 280px);
		flex: 0 0 auto;
		margin: 0 !important;
		padding: 5px 9px !important;
		font-size: 0.74rem !important;
		color: rgba(255, 255, 255, 0.9) !important;
		white-space: nowrap;
		line-height: 1.3 !important;
		border: none !important;
		background: rgba(255, 255, 255, 0.06);
		border-radius: 6px;
		transition: background 0.15s ease;
		overflow: hidden;
		text-overflow: ellipsis;
	}

	/* Color swatch */
	.tc-seating-legend ul li span {
		width: 12px !important;
		height: 12px !important;
		min-width: 12px;
		flex-shrink: 0;
		margin: 0 !important;
		display: inline-block !important;
		float: none !important;
		border-radius: 3px !important;
	}

	.tc-seating-legend ul li span::before {
		display: none !important;
	}

	/* Status items (Reservado, En carrito) — smaller & muted */
	.tc_seating_map .tc-seating-legend ul li.tc_reserved_seat_color_status,
	.tc_seating_map .tc-seating-legend ul li.tc_in_cart_seat_color_status,
	.tc_seating_map .tc-seating-legend ul li.tc_blocked_seat_color_status,
	.tc_seating_map .tc-seating-legend ul li.tc_unavailable_seat_color_status,
	.tc_seating_map .tc-seating-legend ul li.tc_in_others_cart_seat_color_status {
		font-size: 0.7rem !important;
		color: rgba(255, 255, 255, 0.45) !important;
		background: transparent;
		padding: 3px 6px !important;
	}

	/* -------------------------------------------------------
	   Bottom controls — safe area aware + flex layout
	   The plugin uses position:absolute on .tc-seatchart-cart-info
	   which overlays the subtotal. We switch to flexbox on mobile
	   so both elements share the bar space properly.
	   ------------------------------------------------------- */
	.tc-bottom-controls {
		min-height: 48px !important;
		bottom: env(safe-area-inset-bottom, 0px) !important;
		padding-bottom: 0 !important;
	}

	.tc-bottom-controls-inside {
		min-height: 48px !important;
		padding: 4px 10px !important;
		display: flex !important;
		align-items: center !important;
	}

	.tc-checkout-bar {
		display: flex !important;
		align-items: center !important;
		justify-content: space-between !important;
		text-align: left !important;
		width: 100% !important;
		height: auto !important;
		gap: 8px;
	}

	/* Force subtotal visible — the plugin hides it at <= 480px via
	   display:none and expects a .tc-total-responsive element that
	   doesn't exist in WooCommerce bridge mode. */
	.tc-seatchart-subtotal {
		display: block !important;
		font-size: 0.82rem !important;
		text-align: left !important;
		padding-left: 0 !important;
		margin-left: 0 !important;
		flex: 1;
		min-width: 0;
	}

	.tc-seatchart-subtotal p {
		margin: 0 !important;
		color: #e0e0e0 !important;
		font-size: 0.78rem !important;
		white-space: nowrap;
		text-align: left !important;
	}

	.tc-seatchart-subtotal strong {
		font-size: 1rem !important;
		color: var(--gtango-gold, #C9A96E) !important;
	}

	/* Override the absolute positioning on the cart info (button) wrapper */
	.tc-seatchart-cart-info {
		position: static !important;
		float: none !important;
		width: 100% !important;
		box-sizing: border-box !important;
		flex-shrink: 0 !important;
		display: flex !important;
		align-items: center !important;
	}
}

/* --- Cart panel (slide-up) dark theme + delete button --- */
.tc-tickets-cart {
	background-color: #1e1e1e !important;
	border: 1px solid rgba(201, 169, 110, 0.2) !important;
}

.tc-tickets-cart h3 {
	background-color: rgba(201, 169, 110, 0.15) !important;
	color: #c9a96e !important;
}

.tc-tickets-cart ul li {
	color: rgba(255, 255, 255, 0.85) !important;
	border-bottom-color: rgba(255, 255, 255, 0.08) !important;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.tc-remove-from-cart {
	color: #e05555 !important;
	cursor: pointer;
	margin-left: 8px;
	flex-shrink: 0;
}

.tc-remove-from-cart:hover,
.tc-remove-from-cart i:hover {
	color: #ff6b6b !important;
}

/* --- Seat tooltip (hover popup) dark theme --- */
.tc-ticket-info-wrap {
	background-color: #2a2a2a !important;
	color: #fff !important;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.5) !important;
}

.tc-arrow-up {
	border-bottom-color: #2a2a2a !important;
}

.tc-front-seat-number {
	color: rgba(255, 255, 255, 0.85) !important;
}

/* jQuery UI dialog overrides (the seat chart may render dialogs) */
.ui-dialog {
	background: #1e1e1e !important;
	border: 1px solid rgba(201, 169, 110, 0.3) !important;
	border-radius: 12px !important;
}

.ui-dialog .ui-dialog-titlebar {
	background: transparent !important;
	border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
	color: #fff !important;
}

.ui-dialog .ui-dialog-content {
	color: rgba(255, 255, 255, 0.85) !important;
}

/* --- Map wrapper: dark background (replaces light pattern) --- */
.tc-wrapper {
	background: #1a1a1a !important;
}

/* --- Section labels / headings visible on dark background --- */
.tc-heading h3 {
	color: rgba(255, 255, 255, 0.85) !important;
}

.tc-heading span {
	color: rgba(255, 255, 255, 0.5) !important;
}

.tc-caption-group {
	color: rgba(255, 255, 255, 0.7) !important;
}

.tc-caption-group .tc-caption span {
	color: rgba(255, 255, 255, 0.7) !important;
}

/* --- Hide WhatsApp FAB when the seating overlay is open --- */
body:has(.tc_seating_map[style*="display: block"]) #ht-ctc-chat,
body:has(.tc_seating_map[style*="display: block"]) .ht-ctc-chat,
body:has(.tc_seating_map[style*="display:block"]) #ht-ctc-chat,
body:has(.tc_seating_map[style*="display:block"]) .ht-ctc-chat {
	display: none !important;
}

/* --- Seat border contrast on dark background --- */
.tc-group-content .tc_seat_unit::before,
.tc-table-chair::before {
	border-color: rgba(255, 255, 255, 0.15) !important;
}

/* --- Preloader dark background --- */
.tc-chart-preloader {
	background-color: rgba(26, 26, 26, 0.95) !important;
}

/* ==========================================================================
   Seating Chart — Currency Switcher (between header & price table)
   ========================================================================== */

.ts-seating-currency-switcher {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 10px;
	margin-bottom: 1rem;
	padding-bottom: 0.75rem;
	border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

/* Contextual label: "Moneda:" — generated via pseudo-element for zero-PHP changes */
.ts-seating-currency-switcher::before {
	content: 'Moneda';
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	color: rgba(255, 255, 255, 0.45);
	text-transform: uppercase;
	margin-right: auto;
}

@media (max-width: 480px) {
	.ts-seating-currency-switcher {
		justify-content: space-between;
		gap: 8px;
	}
}

/* ==========================================================================
   Seating Chart — Ticket Price Reference Table
   ========================================================================== */

.ts-seating-prices {
	margin-bottom: 1.25rem;
}

.ts-seating-prices__table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.95rem;
}

.ts-seating-prices__table th {
	text-align: left;
	color: rgba(255, 255, 255, 0.5);
	font-weight: 600;
	padding: 0.5rem 0.75rem;
	border-bottom: 1px solid rgba(201, 169, 110, 0.2);
	text-transform: uppercase;
	font-size: 0.8rem;
	letter-spacing: 0.05em;
}

.ts-seating-prices__table td {
	padding: 0.65rem 0.75rem;
	border-bottom: 1px solid rgba(255, 255, 255, 0.06);
	color: rgba(255, 255, 255, 0.85);
}

.ts-seating-prices__table td:last-child {
	color: #c9a96e;
	font-weight: 600;
}

@media (max-width: 768px) {
	/* The seat-map button lives in the fixed phone bar, so nothing follows the
	   table inside the card: no trailing space (MOE-6-580). */
	.ts-ticket-panel--seating .ts-seating-prices {
		margin-bottom: 0;
		overflow: visible;
	}

	.ts-ticket-panel--seating .ts-seating-prices__table {
		margin-bottom: 0; /* Storefront's table margin collapsed through the wrapper (~19px) */
	}

	.ts-ticket-panel--seating .ts-seating-prices__table tr:last-child td {
		border-bottom: 0;
	}

	.ts-seating-prices__table {
		table-layout: fixed;
		font-size: 0.84rem;
	}

	.ts-seating-prices__table th,
	.ts-seating-prices__table td {
		padding: 0.5rem 0.45rem;
		overflow-wrap: anywhere;
	}

	.ts-seating-prices__table th:last-child,
	.ts-seating-prices__table td:last-child {
		width: 42%;
		text-align: right;
		white-space: nowrap;
	}
}

@media (max-width: 380px) {
	.ts-seating-prices__table,
	.ts-seating-prices__table tbody,
	.ts-seating-prices__table tr,
	.ts-seating-prices__table td {
		display: block;
	}

	.ts-seating-prices__table thead {
		display: none;
	}

	.ts-seating-prices__table tr {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		gap: 8px;
		padding: 0.55rem 0;
		border-bottom: 1px solid rgba(255, 255, 255, 0.06);
	}

	.ts-seating-prices__table td {
		padding: 0;
		border-bottom: 0;
	}

	.ts-seating-prices__table td:last-child {
		width: auto;
	}
}

/* ==========================================================================
   WP2: Seat Counter Badge (bottom checkout bar)
   ========================================================================== */

.ts-seat-counter {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.25rem 0.65rem;
	min-width: 0;
	font-size: 0.78rem;
	font-weight: 600;
	color: #c9a96e;
	background: rgba(201, 169, 110, 0.12);
	border: 1px solid rgba(201, 169, 110, 0.25);
	border-radius: 999px;
	white-space: nowrap;
	letter-spacing: 0.02em;
	transition: opacity 0.25s ease, transform 0.25s ease;
}

.ts-seat-counter:empty,
.ts-seat-counter--empty {
	display: none;
}

/* WP2: Empty-cart disabled state for checkout button */
.tc-checkout-button.ts-btn-disabled {
	opacity: 0.35 !important;
	pointer-events: none !important;
	cursor: not-allowed !important;
	filter: grayscale(0.4);
}

/* ==========================================================================
   WP2: Snackbar / Toast
   ========================================================================== */

.ts-seat-toast {
	position: fixed;
	/* MOE-1-088: 100px landed on the phone's info row (LEYENDA + seat labels);
	   the mobile bottom stack is ~135px tall, plus the collapsed legend strip. */
	bottom: calc(196px + env(safe-area-inset-bottom, 0px));
	left: 50%;
	transform: translateX(-50%) translateY(20px);
	z-index: 10000000000;
	max-width: calc(100vw - 32px);
	padding: 0.7rem 1.25rem;
	border-radius: 10px;
	font-size: 0.85rem;
	font-weight: 600;
	color: #fff;
	background: rgba(26, 26, 26, 0.94);
	border: 1px solid rgba(201, 169, 110, 0.3);
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.3s ease, transform 0.3s ease;
	text-align: center;
	white-space: nowrap;
}

.ts-seat-toast--visible {
	opacity: 1;
	pointer-events: auto;
	transform: translateX(-50%) translateY(0);
}

/* G-3-044: the idle "Elegí tus entradas" button read as a broken gold block —
   a clearly inactive, still legible state */
.ts-comprar-btn:disabled,
.ts-ticket-panel__footer .ts-comprar-btn:disabled {
	background: #2a2418;
	color: rgba(201, 169, 110, 0.85);
	border: 1px solid rgba(201, 169, 110, 0.35);
	/* keep: vendor — Storefront's own button:disabled opacity carries priority */
	opacity: 1 !important;
	cursor: not-allowed;
}

/* G-3-063: the disabled "−" at quantity 0 — visible but inert.
   keep: vendor — Storefront's button:disabled styles carry priority. */
.ts-qty-selector__btn:disabled {
	opacity: 0.55 !important;
	color: rgba(201, 169, 110, 0.6) !important;
}

/* Desktop: bottom-right corner, off the seat grid (MOE-2-144) */
@media (min-width: 769px) {
	.ts-seat-toast {
		left: auto;
		right: 24px;
		bottom: 96px;
		transform: translateY(20px);
	}

	.ts-seat-toast--visible {
		transform: translateY(0);
	}
}

/* MOE-3-146: at the bottom the toast landed on the zoom pill and the legend
   strip — on phones it now drops in from the top, under the stage cue */
@media (max-width: 768px) {
	.ts-seat-toast {
		top: 132px;
		bottom: auto;
		left: 12px;
		right: 12px;
		max-width: none;
		white-space: normal;
		transform: translateY(-12px);
	}

	.ts-seat-toast--visible {
		transform: none;
	}
}

/* MOE-3-063: 44px quantity stepper */
.ts-qty-selector__btn,
.ts-qty-selector__input {
	min-height: 44px;
}

/* MOE-3-061: name on its own line, price and stepper share the next one */
.ts-ticket-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	column-gap: 12px;
	row-gap: 6px;
	align-items: center;
}

.ts-ticket-row__info {
	display: contents;
}

.ts-ticket-row__name,
.ts-ticket-row__desc,
.ts-ticket-row__sold-out-label {
	grid-column: 1 / -1;
}

.ts-ticket-row__price {
	grid-column: 1;
	margin: 0;
}

.ts-ticket-row__qty {
	grid-column: 2;
	justify-self: end;
}

/* MOE-3-149 / MOE-2-047: the visible seat-dialog "×" is .tc_modal_close_dialog
   (the jQuery UI titlebar close is hidden) — 44px target, centred glyph */
.tc_modal_close_dialog,
button.tc_modal_close_dialog,
.tc_modal_close_dialog {
	width: 44px;
	height: 44px;
	min-width: 44px;
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	font-size: 1.5rem;
	line-height: 1;
}

.tc_modal_close_dialog .fa,
.tc_modal_close_dialog i {
	font-size: 1.35rem;
	line-height: 1;
}

/* MOE-3-147: no "TOTAL $ 0" while nothing is selected */
.ts-ticket-panel__footer--idle .ts-ticket-panel__total {
	display: none;
}

.ts-seat-toast--added {
	border-color: rgba(76, 175, 80, 0.4);
}

.ts-seat-toast--removed {
	border-color: rgba(239, 83, 80, 0.4);
}

/* ==========================================================================
   WP3: Zoom Pulse Attention Animation
   ========================================================================== */

@keyframes ts-zoom-pulse {
	0%, 100% {
		box-shadow: 0 2px 12px rgba(0, 0, 0, 0.4);
		border-color: rgba(201, 169, 110, 0.3);
	}
	50% {
		box-shadow: 0 2px 20px rgba(201, 169, 110, 0.5), 0 0 0 4px rgba(201, 169, 110, 0.15);
		border-color: rgba(201, 169, 110, 0.7);
	}
}

@media (max-width: 768px) {
	.tc-zoom-wrap.ts-zoom-pulse {
		animation: ts-zoom-pulse 0.7s ease 3;
	}
}

/* ==========================================================================
   WP4: Tooltip Overflow Fix (desktop narrow / tablet)
   ========================================================================== */

.tc-ticket-info-wrap {
	max-width: min(320px, calc(100vw - 24px));
	word-wrap: break-word;
	overflow-wrap: break-word;
	box-sizing: border-box;
}

.tc-ticket-info-inside {
	overflow: hidden;
	text-overflow: ellipsis;
}

/* ==========================================================================
   WP5: Body Scroll Lock (iOS Safari)
   ========================================================================== */

body.ts-body-locked {
	position: fixed;
	left: 0;
	right: 0;
	width: 100%;
	overflow: hidden;
}

/* ==========================================================================
   WP1-b: Section-Level Auto-Zoom — "Ver todo" button + heading affordance
   ========================================================================== */

.ts-zoom-out {
	position: fixed;
	top: 16px;
	left: 50%;
	transform: translateX(-50%) translateY(-60px);
	z-index: 10000000000;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 0.55rem 1.25rem;
	border: 1px solid rgba(201, 169, 110, 0.4);
	border-radius: 999px;
	background: rgba(17, 17, 17, 0.92);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	color: #c9a96e;
	font-size: 0.82rem;
	font-weight: 600;
	letter-spacing: 0.03em;
	cursor: pointer;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5);
	opacity: 0;
	pointer-events: none;
	transition: transform 0.35s ease, opacity 0.35s ease;
	-webkit-appearance: none;
	appearance: none;
}

.ts-zoom-out--visible {
	opacity: 1;
	pointer-events: auto;
	transform: translateX(-50%) translateY(0);
}

.ts-zoom-out:active {
	background: rgba(201, 169, 110, 0.2);
}

.ts-zoom-out__icon {
	font-size: 1.1em;
}

/* Section headings — tappable affordance on mobile */
@media (max-width: 768px) {
	.tc_seating_map .tc-heading h3 {
		cursor: pointer;
		text-decoration: underline;
		text-decoration-color: rgba(201, 169, 110, 0.35);
		text-underline-offset: 3px;
		text-decoration-thickness: 1px;
		transition: text-decoration-color 0.2s ease;
	}

	.tc_seating_map .tc-heading h3:active {
		text-decoration-color: rgba(201, 169, 110, 0.8);
	}
}

/* ==========================================================================
   Pending seat selection — gold glow while add/remove dialog is open
   ========================================================================== */

@keyframes ts-seat-pulse {
	0%, 100% {
		box-shadow: 0 0 0 2px rgba(201, 169, 110, 0.6);
	}
	50% {
		box-shadow: 0 0 0 5px rgba(201, 169, 110, 0.3), 0 0 12px rgba(201, 169, 110, 0.4);
	}
}

.ts-seat-pending {
	background-color: #c9a96e;
	color: #c9a96e;
	animation: ts-seat-pulse 1.2s ease infinite;
	z-index: 99999;
	position: relative;
}

/* Override the default jQuery UI purple for selected seats */
.tc-group-wrap .ui-selected.ts-seat-pending {
	background: #c9a96e;
	color: #c9a96e;
}
