.elementor-kit-4{--e-global-color-primary:#FB7A2F;--e-global-color-secondary:#243B4E;--e-global-color-text:#000000;--e-global-color-accent:#EAECF1;--e-global-color-tm-black:#000000;--e-global-color-tm-navy:#243B4E;--e-global-color-tm-orange:#FB7A2F;--e-global-color-tm-gray:#EAECF1;--e-global-color-tm-white:#FFFFFF;--e-global-color-tm-navy-mid:#1A2E3D;--e-global-color-tm-orange-h:#E56518;--e-global-typography-primary-font-family:"Space Grotesk";--e-global-typography-primary-font-weight:700;--e-global-typography-secondary-font-family:"Inter";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Inter";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Space Grotesk";--e-global-typography-accent-font-weight:600;color:#000000;font-family:"Inter", Space Grotesk, Inter, sans-serif;font-size:16px;font-weight:400;line-height:1.6em;}.elementor-kit-4 e-page-transition{background-color:#FFBC7D;}.elementor-kit-4 a{color:#FB7A2F;}.elementor-kit-4 a:hover{color:#E56518;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//*
 * Snippet: tm-global-css
 * Scope: Site-wide — design tokens, base styles y componentes CSS de Ticketmax
 */

/* ── Design Tokens ────────────────────────────────────────────── */
:root {
  --tm-black:       #000000;
  --tm-navy:        #243B4E;
  --tm-navy-mid:    #1A2E3D;
  --tm-navy-dark:   #111E28;
  --tm-orange:      #FB7A2F;
  --tm-orange-h:    #E56518;
  --tm-gray:        #EAECF1;
  --tm-gray-mid:    #D0D4DC;
  --tm-white:       #FFFFFF;
  --tm-shadow-sm:   0 2px 8px rgba(0,0,0,0.12);
  --tm-shadow-md:   0 4px 16px rgba(0,0,0,0.18);
  --tm-shadow-lg:   0 8px 32px rgba(0,0,0,0.24);
  --tm-shadow-xl:   0 16px 48px rgba(0,0,0,0.30);
  --tm-radius-xs:   6px;
  --tm-radius-sm:   8px;
  --tm-radius:      12px;
  --tm-radius-lg:   16px;
  --tm-radius-xl:   24px;
  --tm-radius-pill: 9999px;
  --tm-ease:        cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --tm-transition:  0.25s var(--tm-ease);
  --tm-fs-xs:   0.75rem;   --tm-fs-sm:  0.875rem;
  --tm-fs-base: 1rem;      --tm-fs-md:  1.125rem;
  --tm-fs-lg:   1.25rem;   --tm-fs-xl:  1.5rem;
  --tm-fs-2xl:  2rem;      --tm-fs-3xl: clamp(2rem, 5vw, 3rem);
  --tm-fs-hero: clamp(2.5rem, 8vw, 5rem);
  --tm-lh: 1.6;  --tm-lh-tight: 1.2;
}

/* ── Base ─────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
body { font-family: 'Inter', sans-serif; font-size: var(--tm-fs-base); line-height: var(--tm-lh); color: var(--tm-black); -webkit-font-smoothing: antialiased; }
h1,h2,h3,h4,h5,h6,.elementor-heading-title { font-family: 'Space Grotesk', sans-serif; line-height: var(--tm-lh-tight); font-weight: 700; }
a { color: var(--tm-orange); transition: color var(--tm-transition); }
a:hover { color: var(--tm-orange-h); }

/* ── Section Helpers ──────────────────────────────────────────── */
.tm-section-dark  { background: var(--tm-black)  !important; }
.tm-section-navy  { background: var(--tm-navy)   !important; }
.tm-section-light { background: var(--tm-gray)   !important; }
.tm-text-light    { color: var(--tm-white)        !important; }
.tm-text-orange   { color: var(--tm-orange)       !important; }

/* ── Buttons ──────────────────────────────────────────────────── */
.tm-btn-primary,.elementor-button.tm-btn-primary {
  background: var(--tm-orange); color: var(--tm-white);
  border-radius: var(--tm-radius-sm); border: none;
  font-family: 'Space Grotesk',sans-serif; font-weight: 600;
  padding: 14px 28px; cursor: pointer;
  transition: background var(--tm-transition), box-shadow var(--tm-transition), transform var(--tm-transition);
  box-shadow: var(--tm-shadow-sm);
}
.tm-btn-primary:hover,.elementor-button.tm-btn-primary:hover {
  background: var(--tm-orange-h); box-shadow: var(--tm-shadow-md); transform: translateY(-2px);
}
.tm-btn-secondary,.elementor-button.tm-btn-secondary {
  background: transparent; color: var(--tm-white);
  border: 2px solid var(--tm-white); border-radius: var(--tm-radius-sm);
  font-family: 'Space Grotesk',sans-serif; font-weight: 600; padding: 12px 26px;
  transition: background var(--tm-transition), color var(--tm-transition);
}
.tm-btn-secondary:hover,.elementor-button.tm-btn-secondary:hover { background: var(--tm-white); color: var(--tm-navy); }

/* ── Event Card ───────────────────────────────────────────────── */
.tm-event-card { background: var(--tm-white); border-radius: var(--tm-radius); overflow: hidden; box-shadow: var(--tm-shadow-sm); transition: box-shadow var(--tm-transition), transform var(--tm-transition); }
.tm-event-card:hover { box-shadow: var(--tm-shadow-lg); transform: translateY(-4px); }
.tm-event-card .tm-event-card__image img { width: 100%; height: 200px; object-fit: cover; }
.tm-event-card .tm-event-card__body { padding: 20px; }
.tm-event-card .tm-event-card__date { font-size: var(--tm-fs-xs); color: var(--tm-orange); font-weight: 600; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 6px; }
.tm-event-card .tm-event-card__title { font-family: 'Space Grotesk',sans-serif; font-size: var(--tm-fs-lg); font-weight: 700; margin-bottom: 8px; }
.tm-event-card .tm-event-card__price { font-size: var(--tm-fs-md); font-weight: 600; color: var(--tm-navy); }

/* ── Metric Card ──────────────────────────────────────────────── */
.tm-metric-card { background: var(--tm-white); border-radius: var(--tm-radius); padding: 24px; box-shadow: var(--tm-shadow-sm); border-left: 4px solid var(--tm-orange); }
.tm-metric-card__value { font-family: 'Space Grotesk',sans-serif; font-size: var(--tm-fs-2xl); font-weight: 700; color: var(--tm-navy); }
.tm-metric-card__label { font-size: var(--tm-fs-sm); color: #6B7280; margin-top: 4px; }

/* ── Pricing Card ─────────────────────────────────────────────── */
.tm-pricing-card { background: var(--tm-white); border-radius: var(--tm-radius-lg); padding: 32px 24px; box-shadow: var(--tm-shadow-sm); border: 2px solid var(--tm-gray); text-align: center; transition: box-shadow var(--tm-transition), border-color var(--tm-transition); }
.tm-pricing-card.tm-pricing-card--featured { border-color: var(--tm-orange); box-shadow: var(--tm-shadow-lg); background: var(--tm-navy); color: var(--tm-white); }
.tm-pricing-card__price { font-family: 'Space Grotesk',sans-serif; font-size: var(--tm-fs-3xl); font-weight: 700; }
.tm-pricing-card--featured .tm-pricing-card__price { color: var(--tm-orange); }

/* ── How It Works ─────────────────────────────────────────────── */
.tm-step { text-align: center; padding: 24px 16px; }
.tm-step__number { width: 56px; height: 56px; background: var(--tm-orange); color: var(--tm-white); border-radius: var(--tm-radius-pill); display: flex; align-items: center; justify-content: center; font-family: 'Space Grotesk',sans-serif; font-size: var(--tm-fs-xl); font-weight: 700; margin: 0 auto 16px; }

/* ── Paywall ──────────────────────────────────────────────────── */
.tm-paywall { background: var(--tm-navy); border-radius: var(--tm-radius); padding: 40px 32px; text-align: center; color: var(--tm-white); margin: 32px 0; }
.tm-paywall h3 { font-size: var(--tm-fs-xl); margin-bottom: 12px; }
.tm-paywall p { color: rgba(255,255,255,.75); margin-bottom: 24px; }

/* ── Premium Badge ────────────────────────────────────────────── */
.tm-premium-badge { display: inline-flex; align-items: center; gap: 6px; background: var(--tm-orange); color: var(--tm-white); font-size: var(--tm-fs-xs); font-weight: 700; text-transform: uppercase; letter-spacing: .1em; padding: 4px 10px; border-radius: var(--tm-radius-pill); }

/* ── WooCommerce Overrides ────────────────────────────────────── */
.woocommerce .button,.woocommerce button.button,.woocommerce a.button,.woocommerce input.button { background: var(--tm-orange) !important; color: var(--tm-white) !important; border-radius: var(--tm-radius-sm) !important; font-family: 'Space Grotesk',sans-serif !important; font-weight: 600 !important; }
.woocommerce .button:hover,.woocommerce button.button:hover,.woocommerce a.button:hover { background: var(--tm-orange-h) !important; }

/* ── Responsive ───────────────────────────────────────────────── */
@media (max-width: 767px) {
  .tm-step,.tm-pricing-card { margin-bottom: 24px; }
}
/* ── Auth Forms (Login / Register) ───────────────────────────────
 * Used on: page "Regístrate como Organizador" (/registro-organizador/)
 * and any [woocommerce_my_account] output. Styles the native WC
 * login/register forms + Nextend Social Login buttons in Material style.
 * ────────────────────────────────────────────────────────────── */
.woocommerce-account .woocommerce-MyAccount-content,
.woocommerce form.woocommerce-form-login,
.woocommerce form.woocommerce-form-register {
  background: var(--tm-white);
  border: none;
  border-radius: var(--tm-radius-lg);
  box-shadow: var(--tm-shadow-md);
  padding: 32px 28px;
  max-width: 480px;
  margin: 0 auto 24px;
}
.woocommerce form.woocommerce-form-login .form-row,
.woocommerce form.woocommerce-form-register .form-row { margin-bottom: 18px; }
.woocommerce form .woocommerce-form-login__rememberme { font-size: var(--tm-fs-sm); }
.woocommerce form label { font-weight: 600; font-size: var(--tm-fs-sm); color: var(--tm-navy); margin-bottom: 6px; display: inline-block; }
.woocommerce form .woocommerce-Input,
.woocommerce form input.input-text,
.woocommerce form input[type="password"],
.woocommerce form input[type="email"],
.woocommerce form input[type="text"] {
  width: 100%; border: 1.5px solid var(--tm-gray-mid); border-radius: var(--tm-radius-sm);
  padding: 12px 14px; font-family: 'Inter', sans-serif; font-size: var(--tm-fs-base);
  transition: border-color var(--tm-transition), box-shadow var(--tm-transition);
}
.woocommerce form .woocommerce-Input:focus,
.woocommerce form input:focus {
  outline: none; border-color: var(--tm-orange);
  box-shadow: 0 0 0 3px rgba(251,122,47,.15);
}
.woocommerce form .woocommerce-Button,
.woocommerce form button[type="submit"] {
  width: 100%; padding: 14px; border-radius: var(--tm-radius-sm) !important;
}
.woocommerce-account .woocommerce-LostPassword a { color: var(--tm-orange); font-weight: 600; }
.woocommerce-account .woocommerce-form-login-toggle,
.woocommerce-account .woocommerce-form-register-toggle,
.woocommerce-account .u-columns.woocommerce-Addresses { display: none; }

/* Nextend Social Login buttons — inherits plugin-driven markup, just restyle */
.woocommerce-account .nsl-container { margin: 20px 0; }
.woocommerce-account .nsl-container .nsl-button {
  border-radius: var(--tm-radius-sm) !important;
  box-shadow: var(--tm-shadow-sm) !important;
  font-family: 'Inter', sans-serif !important;
}
/* ── My Account Navigation ────────────────────────────────────── */
.woocommerce-account .woocommerce-MyAccount-navigation {
  background: var(--tm-white);
  border-radius: var(--tm-radius-lg);
  box-shadow: var(--tm-shadow-sm);
  padding: 12px;
  margin-bottom: 24px;
  max-width: 480px;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-wrap: wrap; gap: 6px;
}
.woocommerce-account .woocommerce-MyAccount-navigation li {
  margin: 0;
}
.woocommerce-account .woocommerce-MyAccount-navigation li a {
  display: block;
  padding: 10px 18px;
  border-radius: var(--tm-radius-pill);
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 600;
  font-size: var(--tm-fs-sm);
  color: var(--tm-navy);
  background: var(--tm-gray);
  text-decoration: none;
  transition: background var(--tm-transition), color var(--tm-transition);
}
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover {
  background: var(--tm-gray-mid);
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
  background: var(--tm-orange);
  color: var(--tm-white);
}

/* ── Shop / Event Product Loop (WooCommerce [products] shortcode) ──
 * Reuses the .tm-event-card visual language on WooCommerce's native
 * product loop markup, so the Eventos page = WC's own product query,
 * no custom PHP loop needed.
 * ────────────────────────────────────────────────────────────── */
.woocommerce ul.products {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 24px;
  margin: 32px 0 !important;
  list-style: none;
}
.woocommerce ul.products li.product {
  background: var(--tm-white);
  border-radius: var(--tm-radius);
  overflow: hidden;
  box-shadow: var(--tm-shadow-sm);
  transition: box-shadow var(--tm-transition), transform var(--tm-transition);
  padding: 0 !important;
  width: 100% !important;
  margin: 0 !important;
  text-align: left !important;
}
.woocommerce ul.products li.product:hover {
  box-shadow: var(--tm-shadow-lg);
  transform: translateY(-4px);
}
.woocommerce ul.products li.product a.woocommerce-loop-product__link {
  display: block; color: inherit; text-decoration: none;
}
.woocommerce ul.products li.product img {
  width: 100%; height: 190px; object-fit: cover;
  border-radius: 0 !important; margin: 0 !important; display: block;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: 'Space Grotesk', sans-serif;
  font-size: var(--tm-fs-lg); font-weight: 700;
  color: var(--tm-black);
  margin: 16px 20px 4px !important;
  padding: 0 !important;
}
.woocommerce ul.products li.product .price {
  display: block;
  margin: 0 20px 20px !important;
  font-size: var(--tm-fs-md); font-weight: 600;
  color: var(--tm-orange) !important;
}
.woocommerce ul.products li.product .button {
  margin: 0 20px 20px !important;
  width: calc(100% - 40px);
}

/* Empty state when no events are published yet */
.woocommerce-info.woocommerce-no-products-found,
p.woocommerce-info {
  background: var(--tm-gray);
  border: none;
  border-radius: var(--tm-radius);
  padding: 40px 32px;
  text-align: center;
  font-size: var(--tm-fs-md);
  color: var(--tm-navy);
  max-width: 640px;
  margin: 40px auto !important;
}

/* Eventos page intro */
.tm-eventos-intro {
  max-width: 720px;
  margin: 0 auto 8px;
  text-align: center;
}
.tm-eventos-intro h1 {
  font-size: var(--tm-fs-3xl);
  margin-bottom: 12px;
}
.tm-eventos-intro p {
  color: #6B7280;
  font-size: var(--tm-fs-md);
}
/* ── Phase 0: Dark App-Style Design System (Circl-inspired) ──────
 * New component classes only — does not modify any existing rule.
 * Dark surfaces reuse --tm-navy-mid/--tm-navy-dark (previously unused).
 * Accent stays --tm-orange (brand color), not Circl's pink.
 * ────────────────────────────────────────────────────────────── */

.tm-surface-dark {
  background: var(--tm-navy-dark) !important;
}

/* Search bar */
.tm-search-bar {
  display: flex;
  align-items: center;
  gap: 12px;
  max-width: 640px;
  margin: 0 auto;
  background: var(--tm-navy-mid);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: var(--tm-radius-pill);
  padding: 16px 24px;
  transition: border-color var(--tm-transition), box-shadow var(--tm-transition);
}
.tm-search-bar:focus-within {
  border-color: var(--tm-orange);
  box-shadow: 0 0 0 3px rgba(251,122,47,.15);
}
.tm-search-bar__icon {
  color: rgba(255,255,255,.5);
  flex-shrink: 0;
  display: flex;
}
.tm-search-bar input {
  background: transparent;
  border: none;
  outline: none;
  color: var(--tm-white);
  font-family: 'Inter', sans-serif;
  font-size: var(--tm-fs-md);
  width: 100%;
}
.tm-search-bar input::placeholder {
  color: rgba(255,255,255,.45);
}

/* Quick filter pills */
.tm-filter-pills {
  display: flex;
  gap: 10px;
  justify-content: center;
  flex-wrap: wrap;
  margin-top: 20px;
}
.tm-filter-pill {
  display: inline-block;
  padding: 10px 22px;
  border-radius: var(--tm-radius-pill);
  border: 1px solid rgba(255,255,255,.18);
  background: transparent;
  color: var(--tm-white);
  font-family: 'Inter', sans-serif;
  font-weight: 600;
  font-size: var(--tm-fs-sm);
  text-decoration: none;
  transition: background var(--tm-transition), border-color var(--tm-transition);
}
.tm-filter-pill:hover {
  border-color: var(--tm-orange);
  color: var(--tm-orange);
}
.tm-filter-pill--active {
  background: var(--tm-orange);
  border-color: var(--tm-orange);
  color: var(--tm-white);
}

/* Photo-forward event card (new variant, additive to .tm-event-card) */
.tm-event-card--photo {
  position: relative;
  border-radius: var(--tm-radius);
  overflow: hidden;
  aspect-ratio: 3 / 4;
  background-size: cover;
  background-position: center;
  box-shadow: var(--tm-shadow-md);
  transition: transform var(--tm-transition), box-shadow var(--tm-transition);
  display: block;
  color: var(--tm-white);
  text-decoration: none;
}
.tm-event-card--photo:hover {
  transform: translateY(-4px);
  box-shadow: var(--tm-shadow-xl);
}
.tm-badge-verified {
  position: absolute;
  top: 14px; left: 14px;
  background: rgba(251,122,47,.9);
  color: var(--tm-white);
  font-size: var(--tm-fs-xs);
  font-weight: 700;
  padding: 5px 12px;
  border-radius: var(--tm-radius-pill);
  z-index: 2;
}
.tm-save-btn {
  position: absolute;
  top: 12px; right: 12px;
  width: 36px; height: 36px;
  border-radius: 50%;
  background: rgba(0,0,0,.45);
  display: flex; align-items: center; justify-content: center;
  color: var(--tm-white);
  z-index: 2;
  border: none;
  cursor: pointer;
}
.tm-save-btn:hover { background: rgba(0,0,0,.65); }
.tm-event-card__title-overlay {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  padding: 60px 18px 18px;
  background: linear-gradient(to top, rgba(0,0,0,.92) 10%, rgba(0,0,0,0) 100%);
  z-index: 1;
}
.tm-event-card__title-overlay h3 {
  font-family: 'Space Grotesk', sans-serif;
  font-size: var(--tm-fs-lg);
  font-weight: 700;
  color: var(--tm-white);
  margin: 0 0 8px;
}
.tm-event-card__meta {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: var(--tm-fs-sm);
  color: rgba(255,255,255,.8);
  margin-bottom: 4px;
}
.tm-event-card__meta svg { flex-shrink: 0; width: 14px; height: 14px; }
.tm-event-card__price {
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 700;
  font-size: var(--tm-fs-md);
  color: var(--tm-orange);
  margin-top: 8px;
}
.tm-tag-pill {
  display: inline-block;
  background: rgba(255,255,255,.12);
  color: var(--tm-white);
  font-size: var(--tm-fs-xs);
  font-weight: 600;
  padding: 4px 10px;
  border-radius: var(--tm-radius-pill);
  margin: 8px 6px 0 0;
}

/* Featured carousel wrapper */
.tm-carousel-wrap__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 24px;
}
.tm-carousel-wrap__title {
  font-family: 'Space Grotesk', sans-serif;
  font-size: var(--tm-fs-2xl);
  font-weight: 700;
  color: var(--tm-white);
  margin: 0;
}
.tm-carousel-wrap__controls {
  display: flex;
  align-items: center;
  gap: 10px;
}
.tm-carousel-arrow {
  width: 40px; height: 40px;
  border-radius: 50%;
  background: var(--tm-navy-mid);
  border: none;
  color: var(--tm-white);
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
  transition: background var(--tm-transition);
}
.tm-carousel-arrow:hover { background: var(--tm-orange); }
.tm-carousel-wrap__seeall {
  color: var(--tm-orange);
  font-weight: 600;
  font-size: var(--tm-fs-sm);
  text-decoration: none;
}

/* Bottom floating nav bar (mobile app pattern) */
.tm-bottom-nav {
  display: flex;
  align-items: stretch;
  justify-content: space-around;
  background: var(--tm-navy-dark);
  border-top: 1px solid rgba(255,255,255,.08);
}
.tm-bottom-nav__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  flex: 1;
  padding: 10px 4px 8px;
  color: rgba(255,255,255,.55);
  text-decoration: none;
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  font-weight: 600;
  position: relative;
}
.tm-bottom-nav__item svg { width: 22px; height: 22px; }
.tm-bottom-nav__item--active { color: var(--tm-white); }
.tm-bottom-nav__item--active::after {
  content: '';
  position: absolute;
  top: 4px;
  width: 4px; height: 4px;
  border-radius: 50%;
  background: var(--tm-orange);
}
/* Prevent bottom nav from covering page content on mobile */
@media (max-width: 767px) {
  body.tm-has-bottom-nav {
    padding-bottom: 64px;
  }
}
/* ── Photo-Overlay Event Card (upgrades the existing WC loop card) ──
 * Applies the Circl-inspired full-bleed photo + bottom text-overlay
 * treatment on top of WooCommerce's native product-loop markup, using
 * hook-injected content from the tm-event-card-hooks snippet (save
 * button, location/date meta, tag pills). Overrides/extends the base
 * .woocommerce ul.products li.product rules already defined above.
 * ────────────────────────────────────────────────────────────── */
.woocommerce ul.products li.product {
  position: relative;
  aspect-ratio: 3 / 4;
  height: auto;
}
.woocommerce ul.products li.product a.woocommerce-loop-product__link {
  position: absolute;
  inset: 0;
  z-index: 1;
}
.woocommerce ul.products li.product img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.woocommerce ul.products li.product .tm-save-btn {
  position: absolute;
  top: 12px; right: 12px;
  width: 36px; height: 36px;
  border-radius: 50%;
  background: rgba(0,0,0,.45);
  display: flex; align-items: center; justify-content: center;
  color: var(--tm-white);
  z-index: 3;
  border: none;
  cursor: pointer;
}
.woocommerce ul.products li.product .tm-save-btn:hover { background: rgba(0,0,0,.65); }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  z-index: 2;
  margin: 0 !important;
  padding: 68px 16px 8px !important;
  background: linear-gradient(to top, rgba(0,0,0,.92) 20%, rgba(0,0,0,0) 100%);
  font-family: 'Space Grotesk', sans-serif;
  font-size: var(--tm-fs-lg);
  font-weight: 700;
  color: var(--tm-white) !important;
  text-align: left;
}
.woocommerce ul.products li.product .tm-event-card__meta {
  position: absolute;
  left: 16px; right: 16px;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: var(--tm-fs-sm);
  color: rgba(255,255,255,.85);
  background: rgba(0,0,0,.92);
}
.woocommerce ul.products li.product .tm-event-card__meta svg { flex-shrink: 0; width: 13px; height: 13px; }
.woocommerce ul.products li.product .tm-event-card__meta:nth-of-type(1) { bottom: 62px; }
.woocommerce ul.products li.product .tm-event-card__meta:nth-of-type(2) { bottom: 38px; }
.woocommerce ul.products li.product .tm-tag-pill {
  position: absolute;
  left: 16px;
  bottom: 8px;
  z-index: 2;
  display: inline-block;
  background: rgba(255,255,255,.15);
  color: var(--tm-white);
  font-size: 10px;
  font-weight: 600;
  padding: 3px 9px;
  border-radius: var(--tm-radius-pill);
}
.woocommerce ul.products li.product .price {
  position: absolute;
  right: 16px;
  bottom: 8px;
  z-index: 2;
  margin: 0 !important;
  color: var(--tm-orange) !important;
  font-weight: 700 !important;
}
.woocommerce ul.products li.product .button {
  display: none !important; /* CTA lives on the single event page, not the card */
}
/* Bottom nav needs to actually be pinned — Phase 0 defined the look, this adds positioning */
.tm-bottom-nav {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 999;
}
@media (min-width: 768px) {
  .elementor-hidden-desktop { display: none !important; }
}
/* ── AJAX Search Results Panel (hero search bar) ─────────────────── */
.tm-search-results {
  display: none;
  max-width: 640px;
  margin: 12px auto 0;
  background: var(--tm-navy-mid);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: var(--tm-radius);
  padding: 16px;
  max-height: 420px;
  overflow-y: auto;
}
.tm-search-results--open { display: block; }
.tm-search-results .tm-search-results__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 12px;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none;
}
.tm-search-results .products.tm-search-results__grid li.product {
  aspect-ratio: 3 / 4;
}
.tm-search-results .woocommerce-loop-product__title {
  font-size: var(--tm-fs-sm) !important;
  padding: 40px 10px 6px !important;
}
.tm-search-results__empty {
  color: rgba(255,255,255,.6);
  text-align: center;
  padding: 12px;
  font-size: var(--tm-fs-sm);
  margin: 0;
}
/* ── Event Submission Form (Crear Evento page) ────────────────── */
.tm-event-form-wrap {
  max-width: 640px;
  margin: 0 auto;
}
.tm-event-form {
  background: var(--tm-white);
  border-radius: var(--tm-radius-lg);
  box-shadow: var(--tm-shadow-md);
  padding: 32px 28px;
  display: flex;
  flex-direction: column;
  gap: 18px;
  margin-bottom: 40px;
}
.tm-event-form label {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-weight: 600;
  font-size: var(--tm-fs-sm);
  color: var(--tm-navy);
}
.tm-event-form__row {
  display: flex;
  gap: 16px;
}
.tm-event-form__row label { flex: 1; }
.tm-event-form input[type="text"],
.tm-event-form input[type="number"],
.tm-event-form input[type="date"],
.tm-event-form input[type="time"],
.tm-event-form input[type="file"],
.tm-event-form textarea {
  border: 1.5px solid var(--tm-gray-mid);
  border-radius: var(--tm-radius-sm);
  padding: 12px 14px;
  font-family: 'Inter', sans-serif;
  font-size: var(--tm-fs-base);
  font-weight: 400;
  color: var(--tm-black);
  transition: border-color var(--tm-transition), box-shadow var(--tm-transition);
}
.tm-event-form input:focus,
.tm-event-form textarea:focus {
  outline: none;
  border-color: var(--tm-orange);
  box-shadow: 0 0 0 3px rgba(251,122,47,.15);
}
.tm-event-form button[type="submit"] {
  border: none;
  cursor: pointer;
  margin-top: 8px;
}
.tm-event-form__notice {
  padding: 14px 18px;
  border-radius: var(--tm-radius-sm);
  font-weight: 600;
  margin-bottom: 20px;
}
.tm-event-form__notice--success { background: #E8F5E9; color: #1B5E20; }
.tm-event-form__notice--error { background: #FDECEA; color: #B3261E; }
.tm-event-form__list-title {
  font-family: 'Space Grotesk', sans-serif;
  font-size: var(--tm-fs-xl);
  margin-bottom: 16px;
}
.tm-event-form__empty { color: #6B7280; }
.tm-my-events-list { list-style: none; margin: 0; padding: 0; }
.tm-my-events-list li {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  background: var(--tm-white);
  border-radius: var(--tm-radius);
  box-shadow: var(--tm-shadow-sm);
  padding: 14px 18px;
  margin-bottom: 10px;
}
.tm-my-events-list__title { font-weight: 700; font-family: 'Space Grotesk', sans-serif; flex: 1; }
.tm-my-events-list__price { color: var(--tm-orange); font-weight: 600; }
.tm-my-events-list a {
  font-size: var(--tm-fs-sm);
  font-weight: 600;
  color: var(--tm-navy);
  text-decoration: none;
  padding: 6px 12px;
  border-radius: var(--tm-radius-pill);
  background: var(--tm-gray);
}
.tm-my-events-list a:hover { background: var(--tm-gray-mid); }

@media (max-width: 600px) {
  .tm-event-form__row { flex-direction: column; }
}

/* ── Global Dark Theme Baseline (site-wide) ────────────────────────
 * Homepage/Eventos hero sections etc. already set explicit dark
 * container backgrounds. This makes the *default* page chrome
 * (My Account, Cart, Checkout, Shop archive, plain WP page content)
 * dark too, so nothing reverts to a stray white page.
 * ────────────────────────────────────────────────────────────── */
body { background: var(--tm-navy-dark) !important; color: var(--tm-white); }
.page-header { background: transparent; padding: 56px 24px 16px; text-align: center; }
.page-header .entry-title,
h1.entry-title {
  color: var(--tm-white) !important;
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 700;
  font-size: var(--tm-fs-3xl);
  margin: 0;
}
.page-content { max-width: 1040px; margin: 0 auto; padding: 8px 24px 96px; }
.tm-eventos-intro p { color: rgba(255,255,255,0.6) !important; }

/* WooCommerce / Elementor form fields — dark inputs everywhere */
.woocommerce form .woocommerce-Input,
.woocommerce form input.input-text,
.woocommerce form input[type="text"],
.woocommerce form input[type="password"],
.woocommerce form input[type="email"],
.woocommerce form input[type="tel"],
.woocommerce form input[type="number"],
.woocommerce form textarea,
.woocommerce form select,
.select2-container .select2-selection--single,
.elementor-field-group .elementor-field {
  background-color: rgba(255,255,255,0.06) !important;
  border: 1.5px solid rgba(255,255,255,0.18) !important;
  color: var(--tm-white) !important;
  border-radius: var(--tm-radius-sm);
}
.select2-container .select2-selection--single .select2-selection__rendered { color: var(--tm-white) !important; }
.select2-dropdown { background: var(--tm-navy-mid) !important; border-color: rgba(255,255,255,0.18) !important; }
.select2-results__option { color: var(--tm-white); }
.select2-results__option--highlighted { background: var(--tm-orange) !important; }
.woocommerce form label { color: rgba(255,255,255,0.85); }
.woocommerce form .woocommerce-Input::placeholder,
.elementor-field-group .elementor-field::placeholder { color: rgba(255,255,255,0.35); }
.woocommerce form .woocommerce-Input:focus,
.woocommerce form input:focus,
.elementor-field-group .elementor-field:focus {
  outline: none; border-color: var(--tm-orange) !important;
  box-shadow: 0 0 0 3px rgba(251,122,47,.15);
}
.woocommerce-account .u-columns.woocommerce-Addresses,
.woocommerce-account .woocommerce-form-login-toggle,
.woocommerce-account .woocommerce-form-register-toggle { color: rgba(255,255,255,0.85); }
.woocommerce-account .woocommerce-form-login h2,
.woocommerce-account .woocommerce-form-register h2,
.woocommerce-account h2, .woocommerce-account h3 { color: var(--tm-white); font-family: 'Space Grotesk', sans-serif; }

/* Notices (login errors, order messages, form success) */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-noreviews {
  background-color: var(--tm-navy-mid) !important;
  color: var(--tm-white) !important;
  border-top: 3px solid var(--tm-orange) !important;
}
.woocommerce-message a, .woocommerce-info a { color: var(--tm-orange); }

/* Cart / Checkout tables */
.woocommerce table.shop_table { color: var(--tm-white); background: transparent; }
.woocommerce table.shop_table th { color: rgba(255,255,255,0.55); font-weight: 600; }
.woocommerce table.shop_table td { border-top-color: rgba(255,255,255,0.1) !important; }
.woocommerce .cart-collaterals .cart_totals,
.woocommerce-checkout-review-order { color: var(--tm-white); }
.woocommerce a.remove { color: rgba(255,255,255,0.5) !important; }
.woocommerce a.remove:hover { color: var(--tm-orange) !important; background: transparent !important; }
.woocommerce-checkout #payment div.payment_box { background: var(--tm-navy-mid) !important; color: rgba(255,255,255,0.85); }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--tm-navy-mid) !important; }

/* Product single page: tabs, related products heading */
.woocommerce div.product .woocommerce-tabs ul.tabs li { color: rgba(255,255,255,0.6); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active,
.woocommerce div.product .woocommerce-tabs ul.tabs li a { color: var(--tm-white); }
.woocommerce div.product .woocommerce-tabs .panel { color: rgba(255,255,255,0.85); }


/* ── Dashboard page ────────────────────────────────────────────── */
.tm-dashboard-status .tm-status {
  display: inline-block; padding: 6px 16px; border-radius: var(--tm-radius-pill);
  font-family: 'Space Grotesk', sans-serif; font-weight: 600; font-size: var(--tm-fs-sm);
}
.tm-status--premium { background: var(--tm-orange); color: #FFFFFF; }
.tm-status--basic { background: rgba(255,255,255,0.12); color: #FFFFFF; }
.tm-status--free, .tm-status--guest { background: rgba(255,255,255,0.08); color: rgba(255,255,255,0.6); }

.tm-dashboard-stats-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 20px;
}
.tm-dashboard-card {
  background: var(--tm-navy-mid); border-radius: var(--tm-radius-lg);
  padding: 24px; box-shadow: var(--tm-shadow-sm);
}
.tm-dashboard-card h4 {
  color: #FFFFFF; font-family: 'Space Grotesk', sans-serif; font-weight: 600;
  font-size: var(--tm-fs-md); margin: 0 0 16px;
}
.tm-dashboard-stat { display: flex; flex-direction: column; gap: 6px; }
.tm-dashboard-stat__value {
  font-family: 'Space Grotesk', sans-serif; font-weight: 700;
  font-size: var(--tm-fs-2xl); color: var(--tm-orange);
}
.tm-dashboard-stat__label { color: rgba(255,255,255,0.6); font-size: var(--tm-fs-sm); }

.tm-paywall {
  background: var(--tm-navy-mid); border: 1.5px dashed rgba(251,122,47,0.5);
  border-radius: var(--tm-radius-lg); padding: 32px; text-align: center; margin-top: 8px;
}
.tm-paywall h3 { color: #FFFFFF; font-family: 'Space Grotesk', sans-serif; margin: 0 0 8px; }
.tm-paywall p { color: rgba(255,255,255,0.65); margin: 0 0 20px; }
.tm-btn-primary {
  display: inline-block; background: var(--tm-orange); color: #FFFFFF !important;
  font-family: 'Space Grotesk', sans-serif; font-weight: 600; font-size: var(--tm-fs-sm);
  padding: 12px 28px; border-radius: var(--tm-radius-sm); text-decoration: none;
  transition: background var(--tm-transition);
}
.tm-btn-primary:hover { background: var(--tm-orange-h); }

.tm-dashboard-scanner-wrap h3 { color: #FFFFFF; font-family: 'Space Grotesk', sans-serif; margin-bottom: 16px; }

/* Ticket list shortcode output — give it a card look on dark bg */
.tm-dashboard-ticket-list { color: rgba(255,255,255,0.85); }
.tm-dashboard-ticket-list table { width: 100%; border-collapse: collapse; }
.tm-dashboard-ticket-list th { color: rgba(255,255,255,0.5); text-align: left; padding: 8px; font-weight: 600; }
.tm-dashboard-ticket-list td { padding: 12px 8px; border-top: 1px solid rgba(255,255,255,0.08); }


/* ── Non-event product pages (e.g. subscription plans) ──────────
 * Hide the event-only widgets from the shared Single Event template
 * when the product isn't in the Eventos category.
 * ────────────────────────────────────────────────────────────── */
.tm-non-event-product .elementor-element-7060f1a,
.tm-non-event-product .elementor-element-76da885,
.tm-non-event-product .elementor-element-853f673 {
  display: none !important;
}


/* ── Toast (used for "coming soon" bottom-nav feedback) ──────────── */
.tm-toast {
  position: fixed; left: 50%; bottom: 84px; transform: translateX(-50%) translateY(12px);
  background: var(--tm-navy); color: #FFFFFF; font-family: 'Inter', sans-serif;
  font-size: var(--tm-fs-sm); font-weight: 600; padding: 10px 20px; border-radius: var(--tm-radius-pill);
  box-shadow: var(--tm-shadow-lg); opacity: 0; pointer-events: none; z-index: 1000;
  transition: opacity var(--tm-transition), transform var(--tm-transition);
}
.tm-toast--visible { opacity: 1; transform: translateX(-50%) translateY(0); }
@media (min-width: 768px) { .tm-toast { bottom: 24px; } }


/* ── Fix: product tabs had light-gray core WC background with light
 * text on top of it (invisible/low-contrast) after the global dark
 * pass only recolored text, not the tab background. ────────────── */
.woocommerce div.product .woocommerce-tabs ul.tabs li {
  background-color: var(--tm-navy-mid) !important;
  border-color: rgba(255,255,255,0.15) !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
  background: var(--tm-navy-dark) !important;
  border-bottom-color: var(--tm-navy-dark) !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  color: rgba(255,255,255,0.7) !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
  color: #FFFFFF !important;
}

/* ── Fix: duplicate "related products" heading — our own custom
 * heading widget already says "Eventos relacionados"; hide the
 * native WooCommerce-generated one to avoid the double header. ── */
.related.products > h2 { display: none; }


/* ── Header cart icon on mobile: hide the price subtotal text so the
 * icon-only widget fits its allotted flex width instead of forcing
 * the header into a second row (min-width:auto flex overflow). ── */
@media (max-width: 767px) {
  #elementor-menu-cart__toggle_button .elementor-button-text { display: none; }
  #elementor-menu-cart__toggle_button { padding: 8px !important; min-width: 0 !important; }
}

/* ── Single Event page: breadcrumb links + rating readable on dark ── */
.woocommerce-breadcrumb a { color: rgba(255,255,255,0.6); }
.woocommerce-breadcrumb a:hover { color: var(--tm-orange); }/* End custom CSS */