/* ═══════════════════════════════════════════════════════
   TICKELIUS — Main CSS
   Plataforma de ticketing premium tipo DICE.FM
   ═══════════════════════════════════════════════════════ */

/* ─── VARIABLES ─── */
:root {
  --bg:           #0A0A0A;
  --bg-card:      #111111;
  --bg-card-hover:#161616;
  --bg-elevated:  #1A1A1A;
  --bg-border:    rgba(255,255,255,0.07);
  --bg-border-h:  rgba(255,255,255,0.14);

  --text-primary:   #F5F5F5;
  --text-secondary: rgba(245,245,245,0.55);
  --text-muted:     rgba(245,245,245,0.3);

  --accent:       #FFFFFF;
  --accent-warm:  #F0E6D3;
  --red:          #FF3B30;
  --green:        #30D158;
  --amber:        #FFD60A;

  --radius-sm:    8px;
  --radius-md:    14px;
  --radius-lg:    20px;
  --radius-xl:    28px;
  --radius-full:  999px;

  --font:         'DM Sans', system-ui, -apple-system, sans-serif;
  --font-mono:    'DM Mono', 'SF Mono', monospace;

  --transition:   0.22s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --transition-slow: 0.45s cubic-bezier(0.25, 0.46, 0.45, 0.94);

  --container:    1280px;
  --gap:          24px;
  --header-h:     68px;
}

/* ─── RESET ─── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  font-family: var(--font);
  background: var(--bg);
  color: var(--text-primary);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}
img, video { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; border: none; background: none; }
ul, ol { list-style: none; }
input, textarea, select { font-family: inherit; }

/* ─── CONTAINER ─── */
.tk-container {
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: clamp(16px, 4vw, 48px);
}

/* ─── TYPOGRAPHY ─── */
.tk-section__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin-bottom: 10px;
}
.tk-section__title {
  font-size: clamp(24px, 3.5vw, 38px);
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1.1;
  color: var(--text-primary);
}
.tk-section__header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 32px;
}
.tk-section__header-left {
  display: flex;
  flex-direction: column;
}
.tk-section__link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 500;
  color: var(--text-secondary);
  transition: color var(--transition);
  white-space: nowrap;
  padding-bottom: 4px;
}
.tk-section__link:hover { color: var(--text-primary); }
.tk-section__link svg { transition: transform var(--transition); }
.tk-section__link:hover svg { transform: translateX(3px); }

/* ─── SECTIONS ─── */
.tk-section { padding-block: clamp(48px, 7vw, 96px); }

/* ─── BUTTONS ─── */
.tk-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: var(--font);
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  border-radius: var(--radius-full);
  padding: 13px 24px;
  transition: all var(--transition);
  cursor: pointer;
  border: 1px solid transparent;
  white-space: nowrap;
  letter-spacing: -0.01em;
}
.tk-btn--primary {
  background: var(--text-primary);
  color: var(--bg);
  border-color: var(--text-primary);
}
.tk-btn--primary:hover {
  background: var(--accent-warm);
  border-color: var(--accent-warm);
  transform: translateY(-1px);
}
.tk-btn--ghost {
  background: transparent;
  color: var(--text-primary);
  border-color: var(--bg-border-h);
}
.tk-btn--ghost:hover {
  border-color: var(--text-primary);
  background: rgba(255,255,255,0.04);
}
.tk-btn--sm { font-size: 13px; padding: 9px 18px; }
.tk-btn--hero { font-size: 15px; padding: 16px 32px; }
.tk-btn svg { flex-shrink: 0; transition: transform var(--transition); }
.tk-btn:hover svg { transform: translateX(3px); }

/* ─── LOGO ─── */
.tk-logo { display: inline-block; }
.tk-logo__text {
  font-size: 22px;
  font-weight: 800;
  letter-spacing: -0.04em;
  color: var(--text-primary);
}
.tk-logo__text em {
  font-style: normal;
  color: var(--text-secondary);
}

/* ─── BADGES ─── */
.tk-badge {
  display: inline-block;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: var(--radius-full);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 2;
}
.badge--sold-out   { background: rgba(255,59,48,0.9);   color: #fff; }
.badge--almost     { background: rgba(255,214,10,0.9);  color: #000; }
.badge--trending   { background: rgba(255,255,255,0.15); color: #fff; border: 1px solid rgba(255,255,255,0.2); }
.badge--new        { background: rgba(48,209,88,0.9);   color: #000; }
.badge--soon       { background: rgba(255,255,255,0.1); color: rgba(255,255,255,0.8); border: 1px solid rgba(255,255,255,0.15); }


/* ═══════════════════════════════════════════════════════
   HEADER
   ═══════════════════════════════════════════════════════ */
.tk-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  height: var(--header-h);
  transition: background var(--transition), backdrop-filter var(--transition);
}
.tk-header.is-scrolled {
  background: rgba(10,10,10,0.88);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid var(--bg-border);
}
.tk-header__inner {
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: clamp(16px, 4vw, 48px);
  height: 100%;
  display: flex;
  align-items: center;
  gap: 32px;
}
.tk-nav { margin-left: auto; }
.tk-nav__list {
  display: flex;
  align-items: center;
  gap: 28px;
}
.tk-nav__list a {
  font-size: 14px;
  font-weight: 500;
  color: var(--text-secondary);
  transition: color var(--transition);
}
.tk-nav__list a:hover,
.tk-nav__list .current-menu-item a { color: var(--text-primary); }
.tk-header__actions {
  display: flex;
  align-items: center;
  gap: 10px;
}
.tk-header__search-btn {
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text-secondary);
  border-radius: var(--radius-full);
  transition: all var(--transition);
}
.tk-header__search-btn:hover {
  color: var(--text-primary);
  background: rgba(255,255,255,0.06);
}
.tk-burger {
  display: none;
  flex-direction: column;
  gap: 5px;
  width: 36px;
  height: 36px;
  align-items: center;
  justify-content: center;
  margin-left: 8px;
}
.tk-burger span {
  display: block;
  width: 22px;
  height: 1.5px;
  background: var(--text-primary);
  border-radius: 2px;
  transition: all var(--transition);
}
.tk-burger.is-open span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.tk-burger.is-open span:nth-child(2) { opacity: 0; }
.tk-burger.is-open span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

/* Search overlay */
.tk-search-overlay {
  position: fixed;
  inset: 0;
  background: rgba(10,10,10,0.96);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  z-index: 1100;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--transition);
}
.tk-search-overlay.is-open {
  opacity: 1;
  pointer-events: all;
}
.tk-search-overlay__inner {
  width: min(640px, 90vw);
  position: relative;
}
.tk-search-form { display: flex; gap: 12px; }
.tk-search-input {
  flex: 1;
  background: rgba(255,255,255,0.06);
  border: 1px solid var(--bg-border-h);
  border-radius: var(--radius-full);
  color: var(--text-primary);
  font-size: 18px;
  font-weight: 400;
  padding: 16px 24px;
  outline: none;
  transition: border-color var(--transition), background var(--transition);
}
.tk-search-input::placeholder { color: var(--text-muted); }
.tk-search-input:focus {
  border-color: var(--text-primary);
  background: rgba(255,255,255,0.08);
}
.tk-search-submit {
  background: var(--text-primary);
  color: var(--bg);
  border-radius: var(--radius-full);
  padding: 0 24px;
  transition: background var(--transition);
}
.tk-search-submit:hover { background: var(--accent-warm); }
.tk-search-close {
  position: absolute;
  top: -56px;
  right: 0;
  color: var(--text-secondary);
  padding: 8px;
  transition: color var(--transition);
}
.tk-search-close:hover { color: var(--text-primary); }

/* Mobile nav */
.tk-mobile-nav {
  position: fixed;
  top: var(--header-h);
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(10,10,10,0.98);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  z-index: 999;
  padding: 32px clamp(16px, 4vw, 48px);
  display: flex;
  flex-direction: column;
  opacity: 0;
  transform: translateY(-8px);
  pointer-events: none;
  transition: opacity var(--transition), transform var(--transition);
}
.tk-mobile-nav.is-open {
  opacity: 1;
  transform: translateY(0);
  pointer-events: all;
}
.tk-mobile-nav__list { display: flex; flex-direction: column; gap: 4px; margin-bottom: 32px; }
.tk-mobile-nav__list a {
  font-size: 24px;
  font-weight: 700;
  color: var(--text-secondary);
  padding: 12px 0;
  border-bottom: 1px solid var(--bg-border);
  display: block;
  letter-spacing: -0.03em;
  transition: color var(--transition);
}
.tk-mobile-nav__list a:hover { color: var(--text-primary); }
.tk-mobile-nav__footer { display: flex; gap: 12px; margin-top: auto; }
.tk-mobile-nav__footer .tk-btn { flex: 1; }
.tk-overlay {
  position: fixed;
  inset: 0;
  z-index: 998;
  pointer-events: none;
}
.tk-overlay.is-active { pointer-events: all; }


/* ═══════════════════════════════════════════════════════
   HERO
   ═══════════════════════════════════════════════════════ */
.tk-hero {
  position: relative;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-end;
  padding: calc(var(--header-h) + 48px) clamp(16px, 4vw, 48px) 64px;
  max-width: 100%;
  overflow: hidden;
}

/* Background */
.tk-hero__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.tk-hero__image,
.tk-hero__video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
}
.tk-hero__abstract {
  width: 100%;
  height: 100%;
  background:
    radial-gradient(ellipse 80% 80% at 60% 40%, rgba(80,40,140,0.5) 0%, transparent 60%),
    radial-gradient(ellipse 60% 60% at 80% 70%, rgba(200,50,100,0.25) 0%, transparent 60%),
    #0A0A0A;
}
.tk-hero__overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(to right, rgba(10,10,10,0.92) 0%, rgba(10,10,10,0.6) 50%, rgba(10,10,10,0.2) 100%),
    linear-gradient(to top, rgba(10,10,10,0.85) 0%, transparent 50%);
}
.tk-hero__grain {
  position: absolute;
  inset: 0;
  opacity: 0.025;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size: 200px 200px;
}

/* Content */
.tk-hero__content {
  position: relative;
  z-index: 1;
  max-width: min(700px, 90vw);
}
.tk-hero__eyebrow { margin-bottom: 16px; }
.tk-hero__badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-secondary);
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: var(--radius-full);
  padding: 6px 14px;
}
.tk-hero__badge svg { color: var(--green); }

.tk-hero__title {
  font-size: clamp(42px, 8vw, 96px);
  font-weight: 800;
  letter-spacing: -0.04em;
  line-height: 0.95;
  color: var(--text-primary);
  margin-bottom: 24px;
}
.tk-hero__meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 0;
  margin-bottom: 32px;
}
.tk-hero__meta-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  color: var(--text-secondary);
}
.tk-hero__meta-sep {
  margin-inline: 12px;
  color: var(--text-muted);
}
.tk-hero__meta-price {
  color: var(--text-primary);
  font-weight: 600;
}
.tk-hero__actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

/* Scroll indicator */
.tk-hero__scroll {
  position: absolute;
  bottom: 32px;
  right: clamp(16px, 4vw, 48px);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-muted);
  z-index: 1;
}
.tk-hero__scroll-line {
  width: 1px;
  height: 40px;
  background: linear-gradient(to bottom, var(--text-muted), transparent);
  animation: scrollPulse 2s ease-in-out infinite;
}
@keyframes scrollPulse {
  0%, 100% { opacity: 0.3; }
  50%       { opacity: 1; }
}

/* Stats */
.tk-hero__stats {
  position: absolute;
  bottom: 40px;
  left: clamp(16px, 4vw, 48px);
  display: flex;
  align-items: center;
  gap: 0;
  z-index: 1;
}
.tk-hero__stat {
  display: flex;
  flex-direction: column;
  padding-inline: 24px;
}
.tk-hero__stat:first-child { padding-left: 0; }
.tk-hero__stat strong {
  font-size: 22px;
  font-weight: 800;
  letter-spacing: -0.04em;
  color: var(--text-primary);
  line-height: 1.1;
}
.tk-hero__stat span {
  font-size: 11px;
  color: var(--text-muted);
  margin-top: 2px;
}
.tk-hero__stat-sep {
  width: 1px;
  height: 32px;
  background: var(--bg-border);
}


/* ═══════════════════════════════════════════════════════
   EVENT CARDS
   ═══════════════════════════════════════════════════════ */
.tk-events-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: var(--gap);
}

.tk-event-card {
  background: var(--bg-card);
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid var(--bg-border);
  transition: border-color var(--transition), transform var(--transition);
}
.tk-event-card:hover {
  border-color: var(--bg-border-h);
  transform: translateY(-4px);
}
.tk-event-card__link { display: block; }

.tk-event-card__media {
  position: relative;
  aspect-ratio: 3/4;
  overflow: hidden;
  background: var(--bg-elevated);
}
.tk-event-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--transition-slow);
}
.tk-event-card:hover .tk-event-card__img { transform: scale(1.04); }
.tk-event-card__placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--bg-elevated), var(--bg-card));
  color: var(--text-muted);
}
.tk-event-card__cat {
  position: absolute;
  top: 12px;
  right: 12px;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text-primary);
  background: rgba(10,10,10,0.7);
  border: 1px solid var(--bg-border);
  padding: 4px 10px;
  border-radius: var(--radius-full);
  backdrop-filter: blur(8px);
}
.tk-event-card__hover {
  position: absolute;
  inset: 0;
  background: rgba(10,10,10,0.55);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity var(--transition);
  backdrop-filter: blur(2px);
}
.tk-event-card:hover .tk-event-card__hover { opacity: 1; }
.tk-event-card__hover-btn {
  background: var(--text-primary);
  color: var(--bg);
  font-size: 13px;
  font-weight: 700;
  padding: 11px 24px;
  border-radius: var(--radius-full);
  transform: translateY(6px);
  transition: transform var(--transition);
}
.tk-event-card:hover .tk-event-card__hover-btn { transform: translateY(0); }

.tk-event-card__info { padding: 16px; }
.tk-event-card__date {
  display: block;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin-bottom: 6px;
}
.tk-event-card__title {
  font-size: 16px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--text-primary);
  line-height: 1.2;
  margin-bottom: 6px;
}
.tk-event-card__venue {
  font-size: 13px;
  color: var(--text-secondary);
  margin-bottom: 12px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.tk-event-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 10px;
  border-top: 1px solid var(--bg-border);
}
.tk-event-card__price {
  font-size: 15px;
  font-weight: 700;
  color: var(--text-primary);
  display: flex;
  align-items: baseline;
  gap: 4px;
}
.tk-event-card__price-from {
  font-size: 11px;
  font-weight: 400;
  color: var(--text-muted);
}

/* ─── FILTERS ─── */
.tk-filters {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 28px;
}
.tk-filter-chip {
  display: inline-block;
  padding: 7px 16px;
  font-size: 13px;
  font-weight: 500;
  color: var(--text-secondary);
  background: transparent;
  border: 1px solid var(--bg-border);
  border-radius: var(--radius-full);
  cursor: pointer;
  transition: all var(--transition);
  white-space: nowrap;
}
.tk-filter-chip:hover { color: var(--text-primary); border-color: var(--bg-border-h); }
.tk-filter-chip.active {
  background: var(--text-primary);
  border-color: var(--text-primary);
  color: var(--bg);
}

/* ─── LOAD MORE ─── */
.tk-load-more-wrap {
  display: flex;
  justify-content: center;
  margin-top: 48px;
}
.tk-btn--load-more {
  position: relative;
  border: 1px solid var(--bg-border-h);
  color: var(--text-secondary);
  background: transparent;
  border-radius: var(--radius-full);
  padding: 14px 36px;
  font-size: 14px;
  font-weight: 500;
  transition: all var(--transition);
}
.tk-btn--load-more:hover { color: var(--text-primary); border-color: var(--text-primary); }
.tk-btn--load-more.is-loading .tk-load-more__text { opacity: 0; }
.tk-load-more__spinner {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
}
.tk-btn--load-more.is-loading .tk-load-more__spinner { opacity: 1; }
.tk-load-more__spinner::after {
  content: '';
  width: 16px;
  height: 16px;
  border: 2px solid rgba(255,255,255,0.2);
  border-top-color: var(--text-primary);
  border-radius: 50%;
  animation: spin 0.7s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }


/* ═══════════════════════════════════════════════════════
   TRENDING
   ═══════════════════════════════════════════════════════ */
.tk-trending { padding-bottom: 0; }
.tk-trending .tk-container { margin-bottom: 24px; }
.tk-trending__swiper {
  padding-inline: clamp(16px, 4vw, 48px);
  padding-bottom: 48px;
  overflow: visible;
}
.tk-trending__slide { width: 200px; }
.tk-trending__card {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.tk-trending__media {
  position: relative;
  aspect-ratio: 1/1.25;
  border-radius: var(--radius-md);
  overflow: hidden;
  background: var(--bg-elevated);
}
.tk-trending__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--transition-slow);
}
.tk-trending__card:hover .tk-trending__media img { transform: scale(1.05); }
.tk-trending__placeholder {
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, #1a1a2e, #16213e, #0f3460);
}
.tk-trending__info { padding-inline: 2px; }
.tk-trending__date {
  display: block;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text-muted);
  margin-bottom: 4px;
}
.tk-trending__title {
  font-size: 14px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--text-primary);
  line-height: 1.2;
  margin-bottom: 3px;
}
.tk-trending__city {
  font-size: 12px;
  color: var(--text-secondary);
  margin-bottom: 4px;
}
.tk-trending__price {
  font-size: 13px;
  font-weight: 600;
  color: var(--text-primary);
}


/* ═══════════════════════════════════════════════════════
   CATEGORIES
   ═══════════════════════════════════════════════════════ */
.tk-categories__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 12px;
}
.tk-cat-card {
  position: relative;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 20px;
  background: var(--bg-card);
  border: 1px solid var(--bg-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transition: border-color var(--transition), transform var(--transition);
  cursor: pointer;
}
.tk-cat-card:hover {
  border-color: var(--bg-border-h);
  transform: translateY(-2px);
}
.tk-cat-card:hover .tk-cat-card__bg { opacity: 1; }
.tk-cat-card__bg {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity var(--transition-slow);
  background: radial-gradient(ellipse 120% 120% at 0% 50%, rgba(255,255,255,0.03) 0%, transparent 70%);
}
.tk-cat-card__icon {
  width: 44px;
  height: 44px;
  border-radius: var(--radius-md);
  background: rgba(255,255,255,0.06);
  border: 1px solid var(--bg-border);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--text-secondary);
  transition: background var(--transition), color var(--transition);
}
.tk-cat-card:hover .tk-cat-card__icon {
  background: rgba(255,255,255,0.1);
  color: var(--text-primary);
}
.tk-cat-card__content { flex: 1; min-width: 0; }
.tk-cat-card__name {
  font-size: 15px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--text-primary);
  line-height: 1.2;
}
.tk-cat-card__count {
  font-size: 12px;
  color: var(--text-muted);
  margin-top: 2px;
}
.tk-cat-card__arrow {
  color: var(--text-muted);
  transition: transform var(--transition), color var(--transition);
  flex-shrink: 0;
}
.tk-cat-card:hover .tk-cat-card__arrow {
  transform: translateX(4px);
  color: var(--text-primary);
}


/* ═══════════════════════════════════════════════════════
   CITIES
   ═══════════════════════════════════════════════════════ */
.tk-cities { padding-block: clamp(32px, 5vw, 64px); }
.tk-cities__swiper { margin-top: 24px; overflow: visible; padding-inline: clamp(16px, 4vw, 48px) !important; padding-bottom: 16px; }
.swiper.tk-cities__swiper { overflow: hidden; }
.tk-cities__slide { width: 180px; }
.tk-city-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px;
  background: var(--bg-card);
  border: 1px solid var(--bg-border);
  border-radius: var(--radius-md);
  transition: all var(--transition);
}
.tk-city-card:hover {
  border-color: var(--bg-border-h);
  background: var(--bg-card-hover);
}
.tk-city-card__emoji { font-size: 22px; flex-shrink: 0; }
.tk-city-card__content { min-width: 0; flex: 1; }
.tk-city-card__name {
  font-size: 14px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--text-primary);
}
.tk-city-card__desc {
  font-size: 11px;
  color: var(--text-muted);
  display: block;
  margin-top: 1px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.tk-city-card__arrow {
  color: var(--text-muted);
  flex-shrink: 0;
  transition: transform var(--transition);
}
.tk-city-card:hover .tk-city-card__arrow { transform: translateX(3px); }


/* ═══════════════════════════════════════════════════════
   BENEFITS
   ═══════════════════════════════════════════════════════ */
.tk-benefits {
  background: var(--bg-card);
  border-top: 1px solid var(--bg-border);
  border-bottom: 1px solid var(--bg-border);
}
.tk-benefits__grid {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 64px;
  align-items: start;
}
.tk-benefits__headline {
  position: sticky;
  top: calc(var(--header-h) + 32px);
}
.tk-benefits__headline .tk-section__title { margin-bottom: 16px; }
.tk-benefits__desc {
  font-size: 15px;
  color: var(--text-secondary);
  line-height: 1.7;
  margin-bottom: 32px;
}
.tk-benefits__cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}
.tk-benefit-card {
  padding: 24px;
  border: 1px solid var(--bg-border);
  border-radius: var(--radius-lg);
  transition: border-color var(--transition), background var(--transition);
}
.tk-benefit-card:hover {
  border-color: var(--bg-border-h);
  background: rgba(255,255,255,0.02);
}
.tk-benefit-card__icon {
  width: 40px;
  height: 40px;
  border-radius: var(--radius-sm);
  background: rgba(255,255,255,0.05);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text-secondary);
  margin-bottom: 16px;
}
.tk-benefit-card__title {
  font-size: 15px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--text-primary);
  margin-bottom: 6px;
}
.tk-benefit-card__desc {
  font-size: 13px;
  color: var(--text-secondary);
  line-height: 1.6;
}


/* ═══════════════════════════════════════════════════════
   NEWSLETTER
   ═══════════════════════════════════════════════════════ */
.tk-newsletter {
  background: var(--bg);
  padding-block: clamp(64px, 8vw, 120px);
}
.tk-newsletter__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
}
.tk-newsletter__title {
  font-size: clamp(28px, 4vw, 48px);
  font-weight: 800;
  letter-spacing: -0.04em;
  line-height: 1.05;
  margin-bottom: 10px;
}
.tk-newsletter__sub {
  font-size: 15px;
  color: var(--text-secondary);
  line-height: 1.6;
}
.tk-newsletter__field {
  display: flex;
  gap: 10px;
  margin-bottom: 12px;
}
.tk-newsletter__input {
  flex: 1;
  background: var(--bg-elevated);
  border: 1px solid var(--bg-border-h);
  border-radius: var(--radius-full);
  color: var(--text-primary);
  font-size: 15px;
  padding: 14px 22px;
  outline: none;
  transition: border-color var(--transition);
  min-width: 0;
}
.tk-newsletter__input::placeholder { color: var(--text-muted); }
.tk-newsletter__input:focus { border-color: rgba(255,255,255,0.3); }
.tk-newsletter__btn { flex-shrink: 0; }
.tk-newsletter__legal {
  font-size: 12px;
  color: var(--text-muted);
}
.tk-newsletter__success {
  font-size: 14px;
  color: var(--green);
  margin-top: 12px;
}


/* ═══════════════════════════════════════════════════════
   FOOTER
   ═══════════════════════════════════════════════════════ */
.tk-footer {
  border-top: 1px solid var(--bg-border);
  padding-top: 64px;
  padding-bottom: 40px;
}
.tk-footer__grid {
  display: grid;
  grid-template-columns: 2fr repeat(3, 1fr);
  gap: 48px;
  margin-bottom: 48px;
}
.tk-footer__tagline {
  font-size: 14px;
  color: var(--text-secondary);
  line-height: 1.6;
  margin-top: 12px;
  margin-bottom: 20px;
  max-width: 220px;
}
.tk-footer__social { display: flex; gap: 8px; }
.tk-social-btn {
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text-muted);
  border: 1px solid var(--bg-border);
  border-radius: var(--radius-sm);
  transition: all var(--transition);
}
.tk-social-btn:hover { color: var(--text-primary); border-color: var(--bg-border-h); }
.tk-footer__col-title {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin-bottom: 16px;
}
.tk-footer__links { display: flex; flex-direction: column; gap: 10px; }
.tk-footer__links a {
  font-size: 14px;
  color: var(--text-secondary);
  transition: color var(--transition);
}
.tk-footer__links a:hover { color: var(--text-primary); }
.tk-footer__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 24px;
  border-top: 1px solid var(--bg-border);
}
.tk-footer__copy { font-size: 13px; color: var(--text-muted); }
.tk-footer__legal {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 13px;
  color: var(--text-muted);
}
.tk-footer__legal a { color: var(--text-muted); transition: color var(--transition); }
.tk-footer__legal a:hover { color: var(--text-primary); }


/* ═══════════════════════════════════════════════════════
   SWIPER OVERRIDE
   ═══════════════════════════════════════════════════════ */
.tk-swiper-nav { display: flex; gap: 8px; }
.tk-swiper-btn {
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--bg-border-h);
  border-radius: var(--radius-full);
  color: var(--text-secondary);
  transition: all var(--transition);
}
.tk-swiper-btn:hover { color: var(--text-primary); border-color: var(--text-primary); }
.tk-swiper-btn:disabled { opacity: 0.3; pointer-events: none; }


/* ═══════════════════════════════════════════════════════
   SCROLL REVEAL ANIMATIONS
   ═══════════════════════════════════════════════════════ */
.tk-reveal {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.6s cubic-bezier(0.16, 1, 0.3, 1), transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}
.tk-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.tk-reveal--delay-1 { transition-delay: 0.1s; }
.tk-reveal--delay-2 { transition-delay: 0.2s; }
.tk-reveal--delay-3 { transition-delay: 0.3s; }


/* ═══════════════════════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════════════════════ */
@media (max-width: 1024px) {
  .tk-benefits__grid { grid-template-columns: 1fr; gap: 40px; }
  .tk-benefits__headline { position: static; }
  .tk-newsletter__inner { grid-template-columns: 1fr; gap: 32px; }
  .tk-footer__grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 768px) {
  .tk-nav { display: none; }
  .tk-header__actions .tk-btn--ghost { display: none; }
  .tk-header__actions .tk-btn--primary { display: none; }
  .tk-burger { display: flex; }

  .tk-hero__stats { display: none; }
  .tk-hero__scroll { display: none; }

  .tk-events-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .tk-categories__grid { grid-template-columns: 1fr 1fr; }
  .tk-benefits__cards { grid-template-columns: 1fr; }
  .tk-footer__grid { grid-template-columns: 1fr 1fr; }
  .tk-newsletter__field { flex-direction: column; }
  .tk-newsletter__btn { width: 100%; }
}

@media (max-width: 480px) {
  .tk-events-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .tk-categories__grid { grid-template-columns: 1fr; }
  .tk-footer__grid { grid-template-columns: 1fr; gap: 32px; }
  .tk-hero__title { letter-spacing: -0.03em; }
  .tk-hero__actions { flex-direction: column; }
  .tk-hero__actions .tk-btn { width: 100%; justify-content: center; }
  .tk-section__header { flex-direction: column; align-items: flex-start; }
}


/* ═══════════════════════════════════════════════════════
   TICKELIUS — Tribe Events Override v5 — FINAL
   Estructura real: li > date-tag + event-wrapper > article
   ═══════════════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700;800&display=swap');

/* ─── FONDO GLOBAL ─── */
body, #page, .site, #content,
#tribe-events-pg-template,
.tribe-events-pg-template {
  background: #0A0A0A !important;
  color: #F5F5F5 !important;
}

/* ─── HEADER ASTRA ─── */
.site-header, #masthead, .main-header-bar {
  background: rgba(10,10,10,0.94) !important;
  border-bottom: 1px solid rgba(255,255,255,0.07) !important;
}
.main-header-bar a, .ast-builder-menu .menu-item a {
  color: rgba(245,245,245,0.65) !important;
  font-family: 'DM Sans', sans-serif !important;
}
.main-header-bar a:hover { color: #F5F5F5 !important; }

/* ─── CONTENEDOR TRIBE ─── */
#tribe-events, .tribe-events-l-container,
.tribe-common, .tribe-events-view,
.tribe-events-view--list, .tribe-events-calendar-list {
  background: transparent !important;
  font-family: 'DM Sans', sans-serif !important;
}

/* ─── BARRA BÚSQUEDA ─── */
.tribe-events-c-events-bar {
  background: #111 !important;
  border: 1px solid rgba(255,255,255,0.08) !important;
  border-radius: 12px !important;
  padding: 10px 16px !important;
  margin-bottom: 24px !important;
}
.tribe-common-form-control-text__input {
  background: transparent !important;
  border: none !important;
  color: #F5F5F5 !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 14px !important;
  box-shadow: none !important;
}
.tribe-common-form-control-text__input::placeholder { color: rgba(245,245,245,0.3) !important; }
.tribe-events-c-search__button, .tribe-common-c-btn, .tribe-common-c-btn-border {
  background: #F5F5F5 !important;
  color: #0A0A0A !important;
  border: none !important;
  border-radius: 100px !important;
  font-family: 'DM Sans', sans-serif !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  padding: 9px 20px !important;
  box-shadow: none !important;
}
.tribe-events-c-search__button:hover { background: #e0d4c0 !important; }

/* ─── NAV FECHAS ─── */
.tribe-events-c-top-bar__datepicker,
.tribe-events-c-top-bar__date-picker-label {
  color: #F5F5F5 !important;
  font-family: 'DM Sans', sans-serif !important;
  font-weight: 800 !important;
  font-size: 20px !important;
  letter-spacing: -0.03em !important;
  background: transparent !important;
  border: none !important;
  text-decoration: none !important;
}
.tribe-events-c-nav__prev, .tribe-events-c-nav__next, .tribe-events-c-nav__today {
  background: #161616 !important;
  border: 1px solid rgba(255,255,255,0.1) !important;
  border-radius: 8px !important;
  color: rgba(245,245,245,0.55) !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  padding: 7px 14px !important;
  box-shadow: none !important;
  min-height: unset !important;
  transition: all 0.2s !important;
}
.tribe-events-c-nav__prev:hover,
.tribe-events-c-nav__next:hover,
.tribe-events-c-nav__today:hover {
  border-color: rgba(255,255,255,0.25) !important;
  color: #F5F5F5 !important;
}

/* ─── SEPARADOR DE MES ─── */
.tribe-events-calendar-list__month-separator {
  border: none !important;
  margin: 28px 0 12px !important;
  background: transparent !important;
}
.tribe-events-calendar-list__month-separator-text {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: rgba(245,245,245,0.22) !important;
  background: transparent !important;
  padding: 0 0 10px !important;
  display: block !important;
  border-bottom: 1px solid rgba(255,255,255,0.06) !important;
}

/* ═══════════════════════════════════════════════════════
   ROW: li que contiene fecha + card
   ═══════════════════════════════════════════════════════ */

/* El li exterior */
.tribe-events-calendar-list__event-row {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  margin-bottom: 10px !important;
  display: flex !important;
  align-items: stretch !important;
  gap: 0 !important;
}

/* Columna con día/número a la izquierda */
.tribe-events-calendar-list__event-date-tag {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: flex-start !important;
  padding: 20px 16px 0 0 !important;
  min-width: 56px !important;
  width: 56px !important;
  flex-shrink: 0 !important;
  background: transparent !important;
}
.tribe-events-calendar-list__event-date-tag-weekday {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  color: rgba(245,245,245,0.3) !important;
  display: block !important;
  margin-bottom: 3px !important;
  -webkit-text-fill-color: rgba(245,245,245,0.3) !important;
}
.tribe-events-calendar-list__event-date-tag-daynum {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 32px !important;
  font-weight: 800 !important;
  letter-spacing: -0.04em !important;
  color: #F5F5F5 !important;
  -webkit-text-fill-color: #F5F5F5 !important;
  line-height: 1 !important;
  display: block !important;
}

/* Wrapper del article — ocupa el resto */
.tribe-events-calendar-list__event-wrapper {
  flex: 1 !important;
  min-width: 0 !important;
  background: transparent !important;
  padding: 0 !important;
}

/* ═══════════════════════════════════════════════════════
   EL ARTICLE — card real
   Astra mete fondo blanco via .ast-article-post
   ═══════════════════════════════════════════════════════ */

article.tribe-events-calendar-list__event,
.tribe-events-calendar-list__event.ast-article-post,
li .tribe-events-calendar-list__event-wrapper article {
  background: #111111 !important;
  border: 1px solid rgba(255,255,255,0.07) !important;
  border-radius: 16px !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
  box-shadow: none !important;
  outline: none !important;
  /* Grid: info | imagen */
  display: grid !important;
  grid-template-columns: 1fr 170px !important;
  min-height: 170px !important;
  transition: border-color 0.22s, transform 0.22s !important;
}
article.tribe-events-calendar-list__event:hover {
  border-color: rgba(255,255,255,0.16) !important;
  transform: translateY(-2px) !important;
}

/* ─── IMAGEN — columna derecha ─── */
.tribe-events-calendar-list__event-featured-image-wrapper {
  grid-column: 2 !important;
  grid-row: 1 !important;
  overflow: hidden !important;
  border-radius: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #1a1a1a !important;
}
.tribe-events-calendar-list__event-featured-image-wrapper img {
  width: 170px !important;
  height: 100% !important;
  min-height: 170px !important;
  object-fit: cover !important;
  object-position: center top !important;
  display: block !important;
  border-radius: 0 !important;
  transition: transform 0.45s !important;
}
article.tribe-events-calendar-list__event:hover
.tribe-events-calendar-list__event-featured-image-wrapper img {
  transform: scale(1.05) !important;
}

/* ─── DETALLES — columna izquierda ─── */
.tribe-events-calendar-list__event-details {
  grid-column: 1 !important;
  grid-row: 1 !important;
  padding: 20px 24px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  gap: 4px !important;
  background: transparent !important;
  min-width: 0 !important;
}
.tribe-events-calendar-list__event-header {
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
}

/* Fecha/hora */
.tribe-events-calendar-list__event-datetime-wrapper { margin-bottom: 2px !important; }
.tribe-events-calendar-list__event-datetime time,
.tribe-event-date-start,
.tribe-event-time {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  color: rgba(245,245,245,0.3) !important;
  -webkit-text-fill-color: rgba(245,245,245,0.3) !important;
}

/* Título */
.tribe-events-calendar-list__event-title { margin: 4px 0 !important; }
.tribe-events-calendar-list__event-title-link {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 17px !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
  color: #F5F5F5 !important;
  -webkit-text-fill-color: #F5F5F5 !important;
  text-decoration: none !important;
  background-image: none !important;
}
.tribe-events-calendar-list__event-title-link:hover {
  color: rgba(245,245,245,0.75) !important;
  -webkit-text-fill-color: rgba(245,245,245,0.75) !important;
}

/* Venue */
address.tribe-events-calendar-list__event-venue,
.tribe-events-calendar-list__event-venue {
  font-style: normal !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 12px !important;
  color: rgba(245,245,245,0.38) !important;
  -webkit-text-fill-color: rgba(245,245,245,0.38) !important;
  margin: 2px 0 !important;
}
.tribe-events-calendar-list__event-venue-title,
.tribe-events-calendar-list__event-venue-address {
  color: rgba(245,245,245,0.38) !important;
  -webkit-text-fill-color: rgba(245,245,245,0.38) !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 12px !important;
}

/* Descripción — quitar clip de Tribe */
.tribe-events-calendar-list__event-description.tribe-common-a11y-hidden {
  clip: unset !important;
  height: auto !important;
  overflow: hidden !important;
  position: relative !important;
  white-space: normal !important;
  width: auto !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
}
.tribe-events-calendar-list__event-description,
.tribe-events-calendar-list__event-description p {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 13px !important;
  color: rgba(245,245,245,0.42) !important;
  -webkit-text-fill-color: rgba(245,245,245,0.42) !important;
  line-height: 1.55 !important;
  margin: 4px 0 0 !important;
  background: transparent !important;
}

/* CTA — precio + botón */
.tribe-events-c-small-cta {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  margin-top: 12px !important;
  padding-top: 12px !important;
  border-top: 1px solid rgba(255,255,255,0.05) !important;
  background: transparent !important;
  flex-wrap: wrap !important;
}
.tribe-events-c-small-cta__link {
  display: inline-flex !important;
  align-items: center !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  color: #0A0A0A !important;
  -webkit-text-fill-color: #0A0A0A !important;
  background: #F5F5F5 !important;
  border: none !important;
  border-radius: 100px !important;
  padding: 8px 18px !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  transition: background 0.2s !important;
  box-shadow: none !important;
}
.tribe-events-c-small-cta__link:hover {
  background: #e0d4c0 !important;
  color: #0A0A0A !important;
  -webkit-text-fill-color: #0A0A0A !important;
}
.tribe-events-c-small-cta__price {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  color: #F5F5F5 !important;
  -webkit-text-fill-color: #F5F5F5 !important;
}
.tribe-events-c-small-cta__stock {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 11px !important;
  color: rgba(245,245,245,0.3) !important;
  -webkit-text-fill-color: rgba(245,245,245,0.3) !important;
}

/* ─── QUITAR SOBRANTES ─── */
.tribe-events-c-subscribe-dropdown,
.tribe-related-events,
.tribe-events-back { display: none !important; }

/* ─── PAGINACIÓN ─── */
.tribe-events-c-nav {
  margin-top: 32px !important;
  padding-top: 24px !important;
  border-top: 1px solid rgba(255,255,255,0.06) !important;
}
.tribe-events-c-nav__prev, .tribe-events-c-nav__next {
  background: transparent !important;
  border: 1px solid rgba(255,255,255,0.12) !important;
  border-radius: 100px !important;
  color: rgba(245,245,245,0.5) !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  padding: 9px 22px !important;
  min-height: unset !important;
  box-shadow: none !important;
  transition: all 0.2s !important;
}
.tribe-events-c-nav__prev:hover, .tribe-events-c-nav__next:hover {
  border-color: rgba(255,255,255,0.3) !important;
  color: #F5F5F5 !important;
}

/* ─── RESPONSIVE ─── */
@media (max-width: 768px) {
  .tribe-events-calendar-list__event-row {
    flex-direction: column !important;
    gap: 8px !important;
  }
  .tribe-events-calendar-list__event-date-tag {
    flex-direction: row !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 0 !important;
    width: auto !important;
  }
  article.tribe-events-calendar-list__event,
  .tribe-events-calendar-list__event.ast-article-post {
    grid-template-columns: 1fr !important;
    grid-template-rows: 200px auto !important;
  }
  .tribe-events-calendar-list__event-featured-image-wrapper {
    grid-column: 1 !important;
    grid-row: 1 !important;
    width: 100% !important;
    height: 200px !important;
    border-radius: 16px 16px 0 0 !important;
  }
  .tribe-events-calendar-list__event-featured-image-wrapper img {
    width: 100% !important;
    height: 200px !important;
    min-height: unset !important;
  }
  .tribe-events-calendar-list__event-details {
    grid-column: 1 !important;
    grid-row: 2 !important;
  }
}


/* ─── FIX IMAGEN COMPLETA — reemplaza el bloque de imagen anterior ─── */

.tribe-events-calendar-list__event-featured-image-wrapper {
  grid-column: 2 !important;
  width: 160px !important;
  min-width: 160px !important;
  align-self: stretch !important;
  overflow: hidden !important;
  border-radius: 0 12px 12px 0 !important;
  background: #0d0d0d !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.tribe-events-calendar-list__event-featured-image-wrapper img {
  width: 160px !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
  display: block !important;
}

article.tribe-events-calendar-list__event,
.tribe-events-calendar-list__event.ast-article-post {
  grid-template-columns: 1fr 160px !important;
  min-height: 200px !important;
}

@media (max-width: 768px) {
  article.tribe-events-calendar-list__event,
  .tribe-events-calendar-list__event.ast-article-post {
    grid-template-columns: 1fr !important;
    grid-template-rows: auto auto !important;
    min-height: unset !important;
  }
  .tribe-events-calendar-list__event-featured-image-wrapper {
    grid-column: 1 !important;
    grid-row: 1 !important;
    width: 100% !important;
    min-width: unset !important;
    height: 240px !important;
    border-radius: 12px 12px 0 0 !important;
  }
  .tribe-events-calendar-list__event-featured-image-wrapper img {
    width: 100% !important;
    height: 240px !important;
    object-fit: contain !important;
  }
}



/* ═══════════════════════════════════════════════════════
   TICKELIUS — Fix móvil completo
   Añadir al final del CSS existente en el personalizador
   ═══════════════════════════════════════════════════════ */

@media (max-width: 768px) {

  /* ─── CONTENEDOR PRINCIPAL ─── */
  #tribe-events,
  .tribe-events-l-container,
  .tribe-events-view {
    padding: 0 16px !important;
    max-width: 100% !important;
  }

  /* ─── BARRA SUPERIOR — fecha + buscador ─── */
  .tribe-events-c-events-bar {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    padding: 12px !important;
    border-radius: 12px !important;
    background: #111 !important;
    border: 1px solid rgba(255,255,255,0.08) !important;
    margin-bottom: 16px !important;
  }

  /* Buscador visible y bien formateado */
  .tribe-events-c-search__input-control,
  .tribe-common-form-control-text {
    width: 100% !important;
  }
  .tribe-common-form-control-text__input {
    background: rgba(255,255,255,0.06) !important;
    border: 1px solid rgba(255,255,255,0.1) !important;
    border-radius: 8px !important;
    color: #F5F5F5 !important;
    padding: 10px 14px !important;
    font-size: 14px !important;
    width: 100% !important;
  }
  .tribe-events-c-search__button {
    width: 100% !important;
    text-align: center !important;
    justify-content: center !important;
    padding: 11px 20px !important;
    border-radius: 8px !important;
  }

  /* ─── NAV FECHAS — "Ahora - 27/9/2026" ─── */
  .tribe-events-c-top-bar {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
    margin-bottom: 16px !important;
    padding: 0 !important;
    background: transparent !important;
  }
  .tribe-events-c-top-bar__datepicker,
  .tribe-events-c-top-bar__date-picker-label {
    color: #F5F5F5 !important;
    -webkit-text-fill-color: #F5F5F5 !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    background: transparent !important;
    border: none !important;
  }
  /* Botones anterior/siguiente/hoy */
  .tribe-events-c-nav__list {
    display: flex !important;
    gap: 6px !important;
  }
  .tribe-events-c-nav__prev,
  .tribe-events-c-nav__next,
  .tribe-events-c-nav__today {
    color: rgba(245,245,245,0.6) !important;
    -webkit-text-fill-color: rgba(245,245,245,0.6) !important;
    background: #161616 !important;
    border: 1px solid rgba(255,255,255,0.1) !important;
    border-radius: 8px !important;
    padding: 7px 12px !important;
    font-size: 12px !important;
  }

  /* Selector de vista (Lista/Mes) */
  .tribe-events-c-view-selector__button {
    color: rgba(245,245,245,0.6) !important;
    -webkit-text-fill-color: rgba(245,245,245,0.6) !important;
    background: #161616 !important;
    border: 1px solid rgba(255,255,255,0.1) !important;
    border-radius: 8px !important;
    padding: 7px 12px !important;
  }
  .tribe-events-c-view-selector__pane {
    background: #161616 !important;
    border: 1px solid rgba(255,255,255,0.1) !important;
    border-radius: 8px !important;
  }
  .tribe-events-c-view-selector__list-item-link {
    color: rgba(245,245,245,0.7) !important;
    -webkit-text-fill-color: rgba(245,245,245,0.7) !important;
  }

  /* ─── ROW — fecha + card en columna ─── */
  .tribe-events-calendar-list__event-row {
    flex-direction: column !important;
    gap: 0 !important;
    margin-bottom: 16px !important;
  }

  /* Fecha: inline horizontal pequeña encima de la card */
  .tribe-events-calendar-list__event-date-tag {
    flex-direction: row !important;
    align-items: baseline !important;
    justify-content: flex-start !important;
    gap: 6px !important;
    padding: 0 0 8px 0 !important;
    width: 100% !important;
    min-width: unset !important;
    border: none !important;
    background: transparent !important;
  }
  .tribe-events-calendar-list__event-date-tag-weekday {
    font-size: 11px !important;
    color: rgba(245,245,245,0.35) !important;
    -webkit-text-fill-color: rgba(245,245,245,0.35) !important;
    letter-spacing: 0.1em !important;
    margin-bottom: 0 !important;
  }
  .tribe-events-calendar-list__event-date-tag-daynum {
    font-size: 22px !important;
    color: #F5F5F5 !important;
    -webkit-text-fill-color: #F5F5F5 !important;
  }

  /* Card en móvil: imagen arriba, info abajo */
  article.tribe-events-calendar-list__event,
  .tribe-events-calendar-list__event.ast-article-post {
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-template-rows: 220px auto !important;
    min-height: unset !important;
    border-radius: 14px !important;
    width: 100% !important;
  }

  /* Imagen arriba a pantalla completa */
  .tribe-events-calendar-list__event-featured-image-wrapper {
    grid-column: 1 !important;
    grid-row: 1 !important;
    width: 100% !important;
    min-width: unset !important;
    height: 220px !important;
    min-height: unset !important;
    border-radius: 14px 14px 0 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: #0d0d0d !important;
    overflow: hidden !important;
  }
  .tribe-events-calendar-list__event-featured-image-wrapper img {
    width: 100% !important;
    height: 220px !important;
    min-height: unset !important;
    object-fit: contain !important;
    object-position: center center !important;
    display: block !important;
  }

  /* Info debajo */
  .tribe-events-calendar-list__event-details {
    grid-column: 1 !important;
    grid-row: 2 !important;
    padding: 16px !important;
  }

  /* Título un poco más pequeño */
  .tribe-events-calendar-list__event-title-link {
    font-size: 15px !important;
  }

  /* CTA en columna */
  .tribe-events-c-small-cta {
    flex-wrap: wrap !important;
    gap: 8px !important;
  }
  .tribe-events-c-small-cta__link {
    width: 100% !important;
    justify-content: center !important;
    padding: 11px !important;
  }

  /* ─── SEPARADOR MES ─── */
  .tribe-events-calendar-list__month-separator-text {
    font-size: 10px !important;
    color: rgba(245,245,245,0.25) !important;
    -webkit-text-fill-color: rgba(245,245,245,0.25) !important;
  }

  /* ─── PAGINACIÓN ─── */
  .tribe-events-c-nav {
    flex-direction: column !important;
    align-items: center !important;
  }
  .tribe-events-c-nav__prev,
  .tribe-events-c-nav__next {
    width: 100% !important;
    justify-content: center !important;
    text-align: center !important;
  }
}



/* ─── CENTRADO MÓVIL + MES BLANCO — añadir al final del CSS ─── */

/* Nombre del mes — blanco */
.tribe-events-calendar-list__month-separator-text,
.tribe-events-calendar-list__month-separator-text * {
  color: #F5F5F5 !important;
  -webkit-text-fill-color: #F5F5F5 !important;
}

@media (max-width: 768px) {

  /* Contenedor principal centrado con padding simétrico */
  #tribe-events,
  .tribe-events-l-container,
  .tribe-events-view,
  .tribe-events-view--list,
  .tribe-common-l-container {
    padding-left: 16px !important;
    padding-right: 16px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  /* Quitar cualquier margen/padding que Astra añada */
  .ast-container,
  .entry-content,
  #primary,
  #content,
  .site-content {
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  /* Row de cada evento — ancho completo */
  .tribe-events-calendar-list__event-row,
  .tribe-events-calendar-list__event-wrapper,
  article.tribe-events-calendar-list__event,
  .tribe-events-calendar-list__event.ast-article-post {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
  }

  /* Grid Tribe — quitar gutters que descuadran */
  .tribe-common-g-row,
  .tribe-common-g-row--gutters {
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  .tribe-common-g-col {
    padding-left: 0 !important;
    padding-right: 0 !important;
    flex: unset !important;
    max-width: 100% !important;
  }
}


/* ─── TODOS LOS TEXTOS DE CARDS EN BLANCO — añadir al final ─── */

/* Fecha y hora */
.tribe-events-calendar-list__event-datetime,
.tribe-events-calendar-list__event-datetime time,
.tribe-events-calendar-list__event-datetime-wrapper,
.tribe-event-date-start,
.tribe-event-time {
  color: rgba(245,245,245,0.7) !important;
  -webkit-text-fill-color: rgba(245,245,245,0.7) !important;
}

/* Título */
.tribe-events-calendar-list__event-title-link {
  color: #F5F5F5 !important;
  -webkit-text-fill-color: #F5F5F5 !important;
}

/* Venue / organizador */
address.tribe-events-calendar-list__event-venue,
.tribe-events-calendar-list__event-venue,
.tribe-events-calendar-list__event-venue-title,
.tribe-events-calendar-list__event-venue-address,
.tribe-events-calendar-list__event-venue * {
  color: rgba(245,245,245,0.65) !important;
  -webkit-text-fill-color: rgba(245,245,245,0.65) !important;
  font-weight: 400 !important;
}

/* Descripción */
.tribe-events-calendar-list__event-description,
.tribe-events-calendar-list__event-description p,
.tribe-events-calendar-list__event-description * {
  color: rgba(245,245,245,0.6) !important;
  -webkit-text-fill-color: rgba(245,245,245,0.6) !important;
}

/* Precio */
.tribe-events-c-small-cta__price {
  color: #F5F5F5 !important;
  -webkit-text-fill-color: #F5F5F5 !important;
}

/* Entradas restantes */
.tribe-events-c-small-cta__stock {
  color: rgba(245,245,245,0.45) !important;
  -webkit-text-fill-color: rgba(245,245,245,0.45) !important;
}


/* ─── HERO FIX — añadir al final del CSS del personalizador ─── */

/* Quitar stats del hero (Eventos activos / Ciudades / Comisiones) */
.tk-hero__stats {
  display: none !important;
}

/* Separar botones del contenido — asegurar que no se montan */
.tk-hero__actions {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  flex-wrap: wrap !important;
  margin-top: 8px !important;
  position: relative !important;
  z-index: 2 !important;
}

/* Botones hero con tamaño correcto */
.tk-btn--hero {
  font-size: 14px !important;
  padding: 14px 28px !important;
  white-space: nowrap !important;
}

/* En móvil los botones en columna */
@media (max-width: 480px) {
  .tk-hero__actions {
    flex-direction: column !important;
    align-items: flex-start !important;
  }
  .tk-btn--hero {
    width: 100% !important;
    justify-content: center !important;
  }
}

<?php
/**
 * Partial: Hero cinemático con slider Swiper
 * Carga hasta 5 eventos destacados rotando cada 4 segundos
 * Pausa al hacer hover
 */

$query  = $args['events'] ?? null;
$slides = [];

if ( $query && $query->have_posts() ) {
    while ( $query->have_posts() ) {
        $query->the_post();
        $event_id = get_the_ID();

        $date_data    = tickelius_format_date($event_id);
        $venue        = tickelius_get_event_venue($event_id);
        $city         = tickelius_get_event_city($event_id);
        $price        = tickelius_get_event_price($event_id);
        $accent_color = get_post_meta($event_id, '_tk_accent_color', true);
        $video_url    = get_post_meta($event_id, '_tk_video_url', true);
        $image        = has_post_thumbnail()
            ? get_the_post_thumbnail_url($event_id, 'tk-hero')
            : '';

        // Venue sin ciudad si ya está incluida o si es redundante
        $venue_display = $venue;
        if ( $venue && $city && stripos($venue, $city) === false ) {
            // Solo mostrar ciudad si es diferente al venue
            // No concatenar — mostrar solo el venue
        }

        $slides[] = [
            'id'           => $event_id,
            'title'        => get_the_title(),
            'url'          => get_permalink(),
            'date'         => $date_data['full'] ?? '',
            'venue'        => $venue_display,
            'price'        => $price,
            'image'        => $image,
            'video'        => $video_url,
            'accent'       => $accent_color,
        ];
    }
    wp_reset_postdata();
}

// Fallback si no hay eventos
if ( empty($slides) ) {
    $slides[] = [


/* ═══════════════════════════════════════════════════════
   CSS DEL PERSONALIZADOR — incorporado al tema hijo
   Para no depender del personalizador de Astra
   ═══════════════════════════════════════════════════════ */

/* TICKELIUS EVENT PAGE — CSS original producción */
body.single-tribe_events{ background:#f7f9fc; }
.custom-event-hero{ position:relative; height:420px; width:100vw; margin-left:calc(-50vw + 50%); overflow:hidden; }
.hero-bg{ position:absolute; top:0; left:0; width:100%; height:100%; background-size:cover; background-position:center; z-index:1; }
.hero-overlay{ position:absolute; top:0; left:0; width:100%; height:100%; background:rgba(0,0,0,.55); display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; color:#fff; padding:20px; z-index:2; }
.custom-event-title{ font-size:3rem; font-weight:700; margin-bottom:20px; color:#fff !important; }
.custom-event-meta-line{ display:flex; flex-wrap:wrap; gap:10px; justify-content:center; margin:20px 0; }
.meta-pill{ background:rgba(0,0,0,.6); color:#fff; padding:8px 14px; border-radius:8px; font-size:.9rem; font-weight:500; }
.meta-price{ background:#8c4bff; font-weight:700; }
.custom-buy-button{ background:#e53935; color:#fff; padding:14px 26px; border-radius:8px; font-weight:600; text-decoration:none; transition:.2s; }
.custom-buy-button:hover{ background:#c62828; }
.event-tickets-section{ max-width:1100px; margin:60px auto; background:#fff; padding:40px; border-radius:14px; box-shadow:0 20px 50px rgba(0,0,0,.08); }
.event-tickets-section h2{ font-size:1.8rem; margin-bottom:25px; }
.tribe-tickets__tickets-wrapper{ background:#f4f7fc; padding:25px; border-radius:12px; }
.tribe-tickets__tickets-item-name{ font-weight:700; font-size:1.05rem; }
.tribe-tickets__tickets-item-price{ font-weight:700; color:#111; }
.tribe-tickets__tickets-item-quantity input{ width:60px; text-align:center; }
.event-description-section{ max-width:900px; margin:60px auto; background:#fff; padding:40px; border-radius:14px; box-shadow:0 20px 50px rgba(0,0,0,.05); }
.event-description-section h2{ margin-bottom:20px; }
.event-description{ line-height:1.7; font-size:1.05rem; color:#333; }
.event-venue-section{ max-width:900px; margin:60px auto; background:#fff; padding:40px; border-radius:14px; box-shadow:0 20px 50px rgba(0,0,0,.05); text-align:center; }
.event-map{ margin-top:20px; }
.tribe-related-events, .tribe-related-events li, .tribe-events-related-events ul{ list-style:none; margin:0; padding:0; }
.tribe-events-related-events li{ list-style:none !important; }
.tribe-events-related-events{ max-width:1100px; margin:60px auto; }
.tribe-related-events{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:25px; }
.tribe-related-events li{ background:#fff; border-radius:10px; overflow:hidden; box-shadow:0 10px 25px rgba(0,0,0,.06); transition:transform .25s ease, box-shadow .25s ease; }
.tribe-related-events li:hover{ transform:translateY(-6px); box-shadow:0 18px 35px rgba(0,0,0,.12); }
.tribe-related-events img{ width:100%; height:180px; object-fit:cover; display:block; }
.tribe-related-events .tribe-related-event-info{ padding:16px; }
.tribe-related-events .tribe-related-event-title{ font-size:1rem; font-weight:600; margin-bottom:6px; line-height:1.3; }
.tribe-related-events .tribe-related-event-datetime{ font-size:.85rem; opacity:.7; }
.event-venue-info{ margin-top:10px; }
.event-venue-info p{ margin:6px 0; font-size:.95rem; }
.tribe-events-c-small-cta__stock{ display:none !important; }
.tribe-tickets__tickets-item-extra-available{ display:none !important; }

@media (max-width:768px){
  .custom-event-title{ font-size:2rem; }
  .event-tickets-section, .event-description-section, .event-venue-section{ margin:30px 20px; padding:25px; }
  .custom-event-meta-line{ flex-direction:column; align-items:center; gap:8px; }
  .meta-pill{ max-width:90%; text-align:center; }
  .custom-buy-button{ width:90%; text-align:center; }
  .tribe-related-events{ grid-template-columns:1fr; }
  .tribe-related-events img{ height:200px; }
}

/* FONDO GLOBAL */
body, #page, .site, #content,
#tribe-events-pg-template, .tribe-events-pg-template {
  background: #0A0A0A !important;
  color: #F5F5F5 !important;
}

/* HEADER */
.site-header, #masthead, .main-header-bar {
  background: rgba(10,10,10,0.94) !important;
  border-bottom: 1px solid rgba(255,255,255,0.07) !important;
}
.main-header-bar a, .ast-builder-menu .menu-item a {
  color: rgba(245,245,245,0.65) !important;
  font-family: 'DM Sans', sans-serif !important;
}
.main-header-bar a:hover { color: #F5F5F5 !important; }

/* HERO */
.tk-hero {
  position: relative !important; min-height: 100vh !important; width: 100% !important;
  display: flex !important; flex-direction: column !important; align-items: flex-start !important;
  justify-content: flex-end !important; padding: 120px clamp(16px, 4vw, 48px) 64px !important;
  overflow: hidden !important;
}
.tk-hero__bg { position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; z-index: 0 !important; }
.tk-hero__image { position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; object-fit: cover !important; object-position: center 30% !important; z-index: 0 !important; }
.tk-hero__overlay { position: absolute !important; inset: 0 !important; z-index: 1 !important; background: linear-gradient(to right, rgba(10,10,10,0.92) 0%, rgba(10,10,10,0.6) 50%, rgba(10,10,10,0.3) 100%), linear-gradient(to top, rgba(10,10,10,0.9) 0%, transparent 60%) !important; }
.tk-hero__grain { position: absolute !important; inset: 0 !important; z-index: 2 !important; pointer-events: none !important; }
.tk-hero__content { position: relative !important; z-index: 3 !important; max-width: 700px !important; width: 100% !important; }
.tk-hero__title { font-size: clamp(36px, 6vw, 80px) !important; font-weight: 800 !important; letter-spacing: -0.04em !important; line-height: 1.0 !important; color: #F5F5F5 !important; -webkit-text-fill-color: #F5F5F5 !important; margin-bottom: 20px !important; }
.tk-hero__eyebrow { margin-bottom: 16px !important; }
.tk-hero__badge { display: inline-flex !important; align-items: center !important; gap: 8px !important; font-size: 11px !important; font-weight: 600 !important; letter-spacing: 0.1em !important; text-transform: uppercase !important; color: rgba(245,245,245,0.8) !important; -webkit-text-fill-color: rgba(245,245,245,0.8) !important; background: rgba(255,255,255,0.1) !important; border: 1px solid rgba(255,255,255,0.15) !important; border-radius: 100px !important; padding: 6px 14px !important; }
.tk-hero__meta { display: flex !important; flex-wrap: wrap !important; align-items: center !important; gap: 8px !important; margin-bottom: 28px !important; }
.tk-hero__meta-item { display: inline-flex !important; align-items: center !important; gap: 6px !important; font-size: 14px !important; color: rgba(245,245,245,0.7) !important; -webkit-text-fill-color: rgba(245,245,245,0.7) !important; }
.tk-hero__meta-sep { color: rgba(245,245,245,0.3) !important; -webkit-text-fill-color: rgba(245,245,245,0.3) !important; }
.tk-hero__meta-price { color: #F5F5F5 !important; -webkit-text-fill-color: #F5F5F5 !important; font-weight: 600 !important; }
.tk-hero__actions { display: flex !important; gap: 12px !important; flex-wrap: wrap !important; align-items: center !important; position: relative !important; z-index: 3 !important; }
.tk-hero__stats, .tk-hero__scroll { display: none !important; }

/* TRIBE */
#tribe-events, .tribe-events-l-container, .tribe-common, .tribe-events-view, .tribe-events-view--list, .tribe-events-calendar-list { background: transparent !important; font-family: 'DM Sans', sans-serif !important; }
.tribe-events-c-events-bar { background: #111 !important; border: 1px solid rgba(255,255,255,0.08) !important; border-radius: 12px !important; padding: 10px 16px !important; margin-bottom: 24px !important; }
.tribe-common-form-control-text__input { background: transparent !important; border: none !important; color: #F5F5F5 !important; font-family: 'DM Sans', sans-serif !important; font-size: 14px !important; box-shadow: none !important; }
.tribe-common-form-control-text__input::placeholder { color: rgba(245,245,245,0.3) !important; }
.tribe-events-c-search__button, .tribe-common-c-btn, .tribe-common-c-btn-border { background: #F5F5F5 !important; color: #0A0A0A !important; border: none !important; border-radius: 100px !important; font-family: 'DM Sans', sans-serif !important; font-weight: 700 !important; font-size: 13px !important; padding: 9px 20px !important; box-shadow: none !important; }
.tribe-events-c-top-bar__datepicker, .tribe-events-c-top-bar__date-picker-label { color: #F5F5F5 !important; -webkit-text-fill-color: #F5F5F5 !important; font-family: 'DM Sans', sans-serif !important; font-weight: 800 !important; font-size: 20px !important; letter-spacing: -0.03em !important; background: transparent !important; border: none !important; text-decoration: none !important; }
.tribe-events-c-nav__prev, .tribe-events-c-nav__next, .tribe-events-c-nav__today { background: #161616 !important; border: 1px solid rgba(255,255,255,0.1) !important; border-radius: 8px !important; color: rgba(245,245,245,0.55) !important; -webkit-text-fill-color: rgba(245,245,245,0.55) !important; font-family: 'DM Sans', sans-serif !important; font-size: 12px !important; font-weight: 600 !important; padding: 7px 14px !important; box-shadow: none !important; min-height: unset !important; transition: all 0.2s !important; }
.tribe-events-c-nav__prev:hover, .tribe-events-c-nav__next:hover, .tribe-events-c-nav__today:hover { border-color: rgba(255,255,255,0.25) !important; color: #F5F5F5 !important; -webkit-text-fill-color: #F5F5F5 !important; }
.tribe-events-calendar-list__month-separator { border: none !important; margin: 28px 0 12px !important; background: transparent !important; }
.tribe-events-calendar-list__month-separator-text, .tribe-events-calendar-list__month-separator-text * { font-family: 'DM Sans', sans-serif !important; font-size: 10px !important; font-weight: 700 !important; letter-spacing: 0.14em !important; text-transform: uppercase !important; color: #F5F5F5 !important; -webkit-text-fill-color: #F5F5F5 !important; background: transparent !important; padding: 0 0 10px !important; display: block !important; border-bottom: 1px solid rgba(255,255,255,0.06) !important; }
.tribe-events-calendar-list__event-row { background: transparent !important; border: none !important; padding: 0 !important; margin-bottom: 10px !important; display: flex !important; align-items: stretch !important; }
.tribe-events-calendar-list__event-date-tag { display: flex !important; flex-direction: column !important; align-items: center !important; justify-content: flex-start !important; padding: 20px 16px 0 0 !important; min-width: 56px !important; width: 56px !important; flex-shrink: 0 !important; background: transparent !important; }
.tribe-events-calendar-list__event-date-tag-weekday { font-family: 'DM Sans', sans-serif !important; font-size: 10px !important; font-weight: 700 !important; text-transform: uppercase !important; letter-spacing: 0.1em !important; color: rgba(245,245,245,0.3) !important; -webkit-text-fill-color: rgba(245,245,245,0.3) !important; display: block !important; margin-bottom: 3px !important; }
.tribe-events-calendar-list__event-date-tag-daynum { font-family: 'DM Sans', sans-serif !important; font-size: 32px !important; font-weight: 800 !important; letter-spacing: -0.04em !important; color: #F5F5F5 !important; -webkit-text-fill-color: #F5F5F5 !important; line-height: 1 !important; display: block !important; }
.tribe-events-calendar-list__event-wrapper { flex: 1 !important; min-width: 0 !important; background: transparent !important; padding: 0 !important; }
article.tribe-events-calendar-list__event, .tribe-events-calendar-list__event.ast-article-post, li .tribe-events-calendar-list__event-wrapper article { background: #111111 !important; border: 1px solid rgba(255,255,255,0.07) !important; border-radius: 16px !important; overflow: hidden !important; margin: 0 !important; padding: 0 !important; box-shadow: none !important; outline: none !important; display: grid !important; grid-template-columns: 1fr 160px !important; min-height: 200px !important; transition: border-color 0.22s, transform 0.22s !important; }
article.tribe-events-calendar-list__event:hover { border-color: rgba(255,255,255,0.16) !important; transform: translateY(-2px) !important; }
.tribe-events-calendar-list__event-featured-image-wrapper { grid-column: 2 !important; width: 160px !important; min-width: 160px !important; align-self: stretch !important; overflow: hidden !important; border-radius: 0 12px 12px 0 !important; background: #0d0d0d !important; display: flex !important; align-items: center !important; justify-content: center !important; }
.tribe-events-calendar-list__event-featured-image-wrapper img { width: 160px !important; height: 100% !important; min-height: 200px !important; object-fit: contain !important; object-position: center !important; display: block !important; }
.tribe-events-calendar-list__event-details { grid-column: 1 !important; padding: 20px 24px !important; display: flex !important; flex-direction: column !important; justify-content: center !important; gap: 4px !important; background: transparent !important; min-width: 0 !important; }
.tribe-events-calendar-list__event-header { background: transparent !important; padding: 0 !important; margin: 0 !important; border: none !important; }
.tribe-events-calendar-list__event-datetime-wrapper { margin-bottom: 2px !important; }
.tribe-events-calendar-list__event-datetime time, .tribe-event-date-start, .tribe-event-time { font-family: 'DM Sans', sans-serif !important; font-size: 10px !important; font-weight: 700 !important; text-transform: uppercase !important; letter-spacing: 0.1em !important; color: rgba(245,245,245,0.7) !important; -webkit-text-fill-color: rgba(245,245,245,0.7) !important; }
.tribe-events-calendar-list__event-title { margin: 4px 0 !important; }
.tribe-events-calendar-list__event-title-link { font-family: 'DM Sans', sans-serif !important; font-size: 17px !important; font-weight: 700 !important; letter-spacing: -0.02em !important; color: #F5F5F5 !important; -webkit-text-fill-color: #F5F5F5 !important; text-decoration: none !important; background-image: none !important; }
.tribe-events-calendar-list__event-title-link:hover { color: rgba(245,245,245,0.8) !important; -webkit-text-fill-color: rgba(245,245,245,0.8) !important; }
address.tribe-events-calendar-list__event-venue, .tribe-events-calendar-list__event-venue { font-style: normal !important; font-family: 'DM Sans', sans-serif !important; font-size: 12px !important; color: rgba(245,245,245,0.65) !important; -webkit-text-fill-color: rgba(245,245,245,0.65) !important; margin: 2px 0 !important; }
.tribe-events-calendar-list__event-venue-title, .tribe-events-calendar-list__event-venue-address { color: rgba(245,245,245,0.65) !important; -webkit-text-fill-color: rgba(245,245,245,0.65) !important; font-family: 'DM Sans', sans-serif !important; font-size: 12px !important; font-weight: 500 !important; }
.tribe-events-calendar-list__event-description, .tribe-events-calendar-list__event-description p { font-family: 'DM Sans', sans-serif !important; font-size: 13px !important; color: rgba(245,245,245,0.6) !important; -webkit-text-fill-color: rgba(245,245,245,0.6) !important; line-height: 1.55 !important; margin: 4px 0 0 !important; background: transparent !important; }
.tribe-events-c-small-cta { display: flex !important; align-items: center !important; gap: 12px !important; margin-top: 12px !important; padding-top: 12px !important; border-top: 1px solid rgba(255,255,255,0.05) !important; background: transparent !important; flex-wrap: wrap !important; }
.tribe-events-c-small-cta__link { display: inline-flex !important; align-items: center !important; font-family: 'DM Sans', sans-serif !important; font-size: 12px !important; font-weight: 700 !important; color: #0A0A0A !important; -webkit-text-fill-color: #0A0A0A !important; background: #F5F5F5 !important; border: none !important; border-radius: 100px !important; padding: 8px 18px !important; text-decoration: none !important; white-space: nowrap !important; transition: background 0.2s !important; box-shadow: none !important; }
.tribe-events-c-small-cta__link:hover { background: #e0d4c0 !important; color: #0A0A0A !important; }
.tribe-events-c-small-cta__price { font-family: 'DM Sans', sans-serif !important; font-size: 14px !important; font-weight: 700 !important; color: #F5F5F5 !important; -webkit-text-fill-color: #F5F5F5 !important; }
.tribe-events-c-subscribe-dropdown, .tribe-related-events, .tribe-events-back { display: none !important; }
.tribe-events-c-nav { margin-top: 32px !important; padding-top: 24px !important; border-top: 1px solid rgba(255,255,255,0.06) !important; }

/* TICKETS */
.tribe-tickets__tickets-item { display: grid !important; grid-template-columns: 1fr auto !important; grid-template-rows: auto auto !important; align-items: center !important; gap: 4px 16px !important; padding: 14px 0 !important; border-bottom: 1px solid rgba(255,255,255,0.05) !important; }
.tribe-tickets__tickets-item-content-title-container { grid-column: 1 !important; grid-row: 1 !important; }
.tribe-tickets__tickets-item-details-content { grid-column: 1 !important; grid-row: 2 !important; font-size: 12px !important; color: #0A0A0A !important; -webkit-text-fill-color: #0A0A0A !important; }
.tribe-tickets__tickets-item-details-content * { color: #0A0A0A !important; -webkit-text-fill-color: #0A0A0A !important; }
.tribe-tickets__tickets-item-extra { grid-column: 2 !important; grid-row: 1 !important; display: flex !important; flex-direction: column !important; align-items: flex-end !important; gap: 6px !important; }
.tribe-tickets__tickets-item-extra-available { display: none !important; }
.tribe-tickets__tickets-item-quantity { grid-column: 2 !important; grid-row: 2 !important; display: flex !important; align-items: center !important; gap: 8px !important; overflow: visible !important; }
.tribe-tickets__tickets-item-quantity-remove, .tribe-tickets__tickets-item-quantity-add { width: 28px !important; height: 28px !important; display: flex !important; align-items: center !important; justify-content: center !important; background: #F5F5F5 !important; border: none !important; border-radius: 50% !important; color: #0A0A0A !important; -webkit-text-fill-color: #0A0A0A !important; font-size: 18px !important; font-weight: 700 !important; cursor: pointer !important; flex-shrink: 0 !important; padding: 0 !important; line-height: 1 !important; }
.tribe-tickets__tickets-item-quantity-number { width: 36px !important; text-align: center !important; }
.tribe-tickets__tickets-item-quantity-number-input { width: 36px !important; text-align: center !important; background: transparent !important; border: none !important; color: #0A0A0A !important; -webkit-text-fill-color: #0A0A0A !important; font-size: 16px !important; font-weight: 700 !important; padding: 0 !important; height: auto !important; box-shadow: none !important; }
.tribe-tickets__tickets-footer-quantity, .tribe-tickets__tickets-footer-quantity-label, .tribe-common-b2.tribe-tickets__tickets-footer-quantity { display: none !important; }
.tribe-tickets__tickets-footer { display: flex !important; flex-wrap: wrap !important; padding-top: 12px !important; padding-bottom: 16px !important; gap: 12px !important; }
.tribe-tickets__tickets-footer-total { width: 100% !important; text-align: center !important; margin-bottom: 8px !important; display: flex !important; flex-direction: column !important; gap: 2px !important; }
.tribe-tickets__tickets-footer-total-label { font-size: 11px !important; color: rgba(0,0,0,0.5) !important; -webkit-text-fill-color: rgba(0,0,0,0.5) !important; text-align: center !important; display: block !important; }
.tribe-tickets__tickets-footer-total-wrap, .tribe-tickets__tickets-footer-total-wrap *, .tribe-tickets__tickets-footer .tribe-formatted-currency-wrap, .tribe-tickets__tickets-footer .tribe-amount, .tribe-tickets__tickets-footer .tribe-currency-symbol { color: #0A0A0A !important; -webkit-text-fill-color: #0A0A0A !important; text-align: center !important; display: block !important; }
.tribe-tickets__tickets-footer-actions { width: 100% !important; }
.tribe-tickets__tickets-footer-actions button, .tribe-tickets__tickets-footer-actions input[type="submit"] { width: 100% !important; text-align: center !important; justify-content: center !important; }

/* HOME */
.tk-benefit-card:nth-child(2) { display: none !important; }
.tk-newsletter__title { color: #F5F5F5 !important; -webkit-text-fill-color: #F5F5F5 !important; }
.tk-filter-chip[data-filter="invitaciones"] { display: none !important; }

/* SINGLE EVENTO */
.tks-ticket-box__guarantees .tks-guarantee:last-child { display: none !important; }

/* TRENDING */
.tk-trending { overflow: hidden !important; width: 100% !important; padding: 0 !important; }
.tk-trending .tk-container { padding-left: clamp(16px, 4vw, 48px) !important; padding-right: clamp(16px, 4vw, 48px) !important; max-width: 1280px !important; margin-left: auto !important; margin-right: auto !important; }
.tk-trending__swiper-wrap { padding-left: clamp(16px, 4vw, 48px) !important; padding-right: clamp(16px, 4vw, 48px) !important; overflow: hidden !important; width: 100% !important; box-sizing: border-box !important; }
.tk-trending__swiper { width: 100% !important; overflow: visible !important; padding-bottom: 24px !important; box-sizing: border-box !important; margin-top: 24px !important; }
.tk-trending__swiper .swiper-wrapper { display: flex !important; flex-direction: row !important; align-items: stretch !important; }
.tk-trending__slide { width: 200px !important; min-width: 200px !important; flex-shrink: 0 !important; }
.tk-trending__card { display: flex !important; flex-direction: column !important; gap: 10px !important; text-decoration: none !important; width: 100% !important; }
.tk-trending__media { position: relative !important; width: 200px !important; height: 260px !important; border-radius: 14px !important; overflow: hidden !important; background: #1a1a1a !important; flex-shrink: 0 !important; }
.tk-trending__media img { width: 100% !important; height: 100% !important; object-fit: cover !important; object-position: center top !important; display: block !important; transition: transform 0.45s !important; }
.tk-trending__card:hover .tk-trending__media img { transform: scale(1.05) !important; }
.tk-trending__info { padding: 0 !important; width: 200px !important; }
.tk-trending__date { display: block !important; font-size: 11px !important; font-weight: 700 !important; text-transform: uppercase !important; letter-spacing: 0.06em !important; color: rgba(245,245,245,0.35) !important; -webkit-text-fill-color: rgba(245,245,245,0.35) !important; margin-bottom: 4px !important; font-family: 'DM Sans', sans-serif !important; }
.tk-trending__title { font-size: 14px !important; font-weight: 700 !important; letter-spacing: -0.02em !important; color: #F5F5F5 !important; -webkit-text-fill-color: #F5F5F5 !important; line-height: 1.2 !important; margin-bottom: 3px !important; font-family: 'DM Sans', sans-serif !important; }
.tk-trending__city { font-size: 12px !important; color: rgba(245,245,245,0.5) !important; -webkit-text-fill-color: rgba(245,245,245,0.5) !important; margin-bottom: 3px !important; font-family: 'DM Sans', sans-serif !important; }
.tk-trending__price { font-size: 13px !important; font-weight: 600 !important; color: #F5F5F5 !important; -webkit-text-fill-color: #F5F5F5 !important; font-family: 'DM Sans', sans-serif !important; }
.tk-swiper-nav { display: flex !important; gap: 8px !important; }
.tk-swiper-btn { width: 36px !important; height: 36px !important; display: flex !important; align-items: center !important; justify-content: center !important; border: 1px solid rgba(255,255,255,0.12) !important; border-radius: 100px !important; color: rgba(245,245,245,0.5) !important; -webkit-text-fill-color: rgba(245,245,245,0.5) !important; background: transparent !important; cursor: pointer !important; transition: all 0.2s !important; }
.tk-swiper-btn:hover { color: #F5F5F5 !important; -webkit-text-fill-color: #F5F5F5 !important; border-color: rgba(255,255,255,0.3) !important; }

/* RESPONSIVE MÓVIL */
@media (max-width: 768px) {
  .tk-hero { padding: 100px 16px 48px !important; min-height: 100svh !important; }
  .tk-hero__title { font-size: clamp(32px, 8vw, 52px) !important; }
  .tk-hero__actions { flex-direction: column !important; width: 100% !important; }
  .tk-btn--hero { width: 100% !important; justify-content: center !important; }
  #tribe-events, .tribe-events-l-container, .tribe-events-view, .tribe-common-l-container { padding-left: 16px !important; padding-right: 16px !important; margin-left: auto !important; margin-right: auto !important; max-width: 100% !important; }
  .ast-container, .entry-content, #primary, #content, .site-content { padding-left: 0 !important; padding-right: 0 !important; margin-left: 0 !important; margin-right: 0 !important; }
  .tribe-common-g-row, .tribe-common-g-row--gutters { margin-left: 0 !important; margin-right: 0 !important; padding-left: 0 !important; padding-right: 0 !important; }
  .tribe-common-g-col { padding-left: 0 !important; padding-right: 0 !important; flex: unset !important; max-width: 100% !important; }
  .tribe-events-calendar-list__event-row { flex-direction: column !important; margin-bottom: 16px !important; }
  .tribe-events-calendar-list__event-date-tag { flex-direction: row !important; align-items: baseline !important; gap: 6px !important; padding: 0 0 8px 0 !important; width: 100% !important; min-width: unset !important; }
  .tribe-events-calendar-list__event-date-tag-weekday { font-size: 11px !important; margin-bottom: 0 !important; }
  .tribe-events-calendar-list__event-date-tag-daynum { font-size: 22px !important; }
  article.tribe-events-calendar-list__event, .tribe-events-calendar-list__event.ast-article-post { display: grid !important; grid-template-columns: 1fr !important; grid-template-rows: 220px auto !important; min-height: unset !important; border-radius: 14px !important; }
  .tribe-events-calendar-list__event-featured-image-wrapper { grid-column: 1 !important; grid-row: 1 !important; width: 100% !important; min-width: unset !important; height: 220px !important; min-height: unset !important; border-radius: 14px 14px 0 0 !important; }
  .tribe-events-calendar-list__event-featured-image-wrapper img { width: 100% !important; height: 220px !important; min-height: unset !important; object-fit: contain !important; }
  .tribe-events-calendar-list__event-details { grid-column: 1 !important; grid-row: 2 !important; padding: 16px !important; }
  .tribe-events-c-small-cta__link { width: 100% !important; justify-content: center !important; padding: 11px !important; }
}

/* FOOTER */
.site-footer, .site-primary-footer-wrap, .site-below-footer-wrap, .site-above-footer-wrap { background: #111111 !important; background-color: #111111 !important; background-image: none !important; border-top: 1px solid rgba(255,255,255,0.07) !important; }
.footer-widget-area a, .ast-footer-copyright, .ast-footer-copyright p, .ast-footer-copyright a, #astra-footer-menu .menu-item > a { color: rgba(245,245,245,0.6) !important; -webkit-text-fill-color: rgba(245,245,245,0.6) !important; font-family: 'DM Sans', sans-serif !important; font-size: 13px !important; text-decoration: none !important; }
.footer-widget-area a:hover, .ast-footer-copyright a:hover, #astra-footer-menu .menu-item > a:hover { color: #F5F5F5 !important; -webkit-text-fill-color: #F5F5F5 !important; }
.ast-footer-copyright img { filter: brightness(0) invert(1) !important; opacity: 0.7 !important; }


/* ─── NEWSLETTER TITLE BLANCO ─── */
.tk-newsletter__title {
  color: #F5F5F5 !important;
  -webkit-text-fill-color: #F5F5F5 !important;
  background: transparent !important;
  -webkit-text-stroke: 0 !important;
}

/* ─── NEWSLETTER FORM ─── */
.tk-newsletter__input {
  background: rgba(255,255,255,0.08) !important;
  border: 1px solid rgba(255,255,255,0.15) !important;
  color: #F5F5F5 !important;
  -webkit-text-fill-color: #F5F5F5 !important;
  border-radius: 100px !important;
  padding: 14px 24px !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 15px !important;
  outline: none !important;
}
.tk-newsletter__input::placeholder {
  color: rgba(245,245,245,0.4) !important;
}
.tk-newsletter__input:focus {
  border-color: rgba(255,255,255,0.35) !important;
  box-shadow: none !important;
}
.tk-newsletter__legal {
  color: rgba(245,245,245,0.4) !important;
  -webkit-text-fill-color: rgba(245,245,245,0.4) !important;
  font-size: 12px !important;
  margin-top: 8px !important;
}
.tk-newsletter__success {
  color: #F5F5F5 !important;
  -webkit-text-fill-color: #F5F5F5 !important;
}

/* ─── FOOTER OSCURO ─── */
.site-footer,
.site-primary-footer-wrap,
.site-below-footer-wrap,
.site-above-footer-wrap {
  background: #111111 !important;
  background-color: #111111 !important;
  background-image: none !important;
  border-top: 1px solid rgba(255,255,255,0.07) !important;
}
.footer-widget-area,
.footer-widget-area p,
.footer-widget-area li {
  background: transparent !important;
}
.footer-widget-area a,
.ast-footer-copyright,
.ast-footer-copyright p,
.ast-footer-copyright a,
#astra-footer-menu .menu-item > a {
  color: rgba(245,245,245,0.6) !important;
  -webkit-text-fill-color: rgba(245,245,245,0.6) !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 13px !important;
  text-decoration: none !important;
}
.footer-widget-area a:hover,
.ast-footer-copyright a:hover,
#astra-footer-menu .menu-item > a:hover {
  color: #F5F5F5 !important;
  -webkit-text-fill-color: #F5F5F5 !important;
}
.ast-footer-copyright img {
  filter: brightness(0) invert(1) !important;
  opacity: 0.7 !important;
}


/* ─── CHECKOUT WOOCOMMERCE ─── */

/* Fondo página checkout */
.woocommerce-checkout,
.woocommerce-checkout #page,
.woocommerce-checkout .site-content,
.woocommerce-checkout #content,
.woocommerce-checkout .entry-content {
  background: #0A0A0A !important;
}

/* Labels de los campos */
.woocommerce-checkout label,
.woocommerce form .form-row label,
.woocommerce-billing-fields label,
.woocommerce-shipping-fields label,
.woocommerce-additional-fields label {
  color: rgba(245,245,245,0.7) !important;
  -webkit-text-fill-color: rgba(245,245,245,0.7) !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
}

/* Títulos secciones */
.woocommerce-billing-fields h3,
.woocommerce-shipping-fields h3,
.woocommerce-additional-fields h3,
#order_review_heading,
.woocommerce-checkout h3 {
  color: #F5F5F5 !important;
  -webkit-text-fill-color: #F5F5F5 !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 20px !important;
  font-weight: 700 !important;
}

/* Inputs */
.woocommerce-checkout input[type="text"],
.woocommerce-checkout input[type="email"],
.woocommerce-checkout input[type="tel"],
.woocommerce-checkout input[type="number"],
.woocommerce-checkout select,
.woocommerce-checkout textarea {
  background: #1a1a1a !important;
  border: 1px solid rgba(255,255,255,0.12) !important;
  color: #F5F5F5 !important;
  -webkit-text-fill-color: #F5F5F5 !important;
  border-radius: 8px !important;
  font-family: 'DM Sans', sans-serif !important;
}
.woocommerce-checkout input:focus,
.woocommerce-checkout select:focus,
.woocommerce-checkout textarea:focus {
  border-color: rgba(255,255,255,0.3) !important;
  outline: none !important;
  box-shadow: none !important;
}

/* Tabla pedido */
.woocommerce-checkout-review-order-table,
.woocommerce-checkout #order_review .shop_table {
  background: #111111 !important;
  border: 1px solid rgba(255,255,255,0.07) !important;
  border-radius: 12px !important;
}
.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td,
.woocommerce-checkout #order_review .shop_table th,
.woocommerce-checkout #order_review .shop_table td {
  color: #F5F5F5 !important;
  -webkit-text-fill-color: #F5F5F5 !important;
  border-color: rgba(255,255,255,0.06) !important;
  font-family: 'DM Sans', sans-serif !important;
}

/* Cupón */
.woocommerce-checkout .woocommerce-info,
.woocommerce-checkout .showcoupon {
  background: #111 !important;
  border-color: rgba(255,255,255,0.1) !important;
  color: rgba(245,245,245,0.7) !important;
  -webkit-text-fill-color: rgba(245,245,245,0.7) !important;
}
.woocommerce-checkout .woocommerce-info a {
  color: #F5F5F5 !important;
  -webkit-text-fill-color: #F5F5F5 !important;
}

/* Botón realizar pedido */
#place_order {
  background: #F5F5F5 !important;
  color: #0A0A0A !important;
  -webkit-text-fill-color: #0A0A0A !important;
  border: none !important;
  border-radius: 100px !important;
  font-family: 'DM Sans', sans-serif !important;
  font-weight: 700 !important;
  width: 100% !important;
  padding: 16px !important;
  font-size: 15px !important;
}
#place_order:hover {
  background: #e0d4c0 !important;
}

/* Métodos de pago */
.woocommerce-checkout #payment {
  background: #111111 !important;
  border-radius: 12px !important;
}
.woocommerce-checkout #payment ul.payment_methods {
  border-color: rgba(255,255,255,0.06) !important;
}
.woocommerce-checkout #payment ul.payment_methods li label,
.woocommerce-checkout #payment div.payment_box,
.woocommerce-checkout #payment div.payment_box p {
  color: rgba(245,245,245,0.7) !important;
  -webkit-text-fill-color: rgba(245,245,245,0.7) !important;
  font-family: 'DM Sans', sans-serif !important;
}


/* ─── CHECKOUT LABELS FIX (clase custom required_field) ─── */
label.required_field,
.woocommerce-checkout label.required_field,
form.checkout label.required_field,
label.required_field * {
  color: rgba(245,245,245,0.75) !important;
  -webkit-text-fill-color: rgba(245,245,245,0.75) !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 13px !important;
  font-weight: 500 !important;
}

/* Título Detalles de facturación */
.woocommerce-billing-fields > h3,
.woocommerce-billing-fields__field-wrapper ~ h3,
form.checkout h3,
#order_review_heading,
.woocommerce-checkout h3 {
  color: #F5F5F5 !important;
  -webkit-text-fill-color: #F5F5F5 !important;
}

/* "Tu pedido" */
.woocommerce-checkout-review-order h3,
.wc-block-components-order-summary__title,
.wp-block-woocommerce-checkout-order-summary-block h3 {
  color: #F5F5F5 !important;
  -webkit-text-fill-color: #F5F5F5 !important;
}

/* Checkbox "He leído..." */
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper label,
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper label a,
.woocommerce-checkout #terms-field label {
  color: rgba(245,245,245,0.75) !important;
  -webkit-text-fill-color: rgba(245,245,245,0.75) !important;
}

/* Botón realizar pedido morado → blanco */
#place_order,
.woocommerce-checkout #place_order {
  background: #F5F5F5 !important;
  color: #0A0A0A !important;
  -webkit-text-fill-color: #0A0A0A !important;
  border-color: #F5F5F5 !important;
}
#place_order:hover {
  background: #dddddd !important;
}


/* ═══════════════════════════════════════════════════════
   CHECKOUT DARK THEME — DEFINITIVO
   ═══════════════════════════════════════════════════════ */

/* Fondo */
body.woocommerce-checkout #content,
body.woocommerce-checkout .site-content,
body.woocommerce-checkout .entry-content,
body.woocommerce-checkout article {
  background: #0A0A0A !important;
  color: #F5F5F5 !important;
}

/* Títulos h3 sin clase — "Detalles de facturación" y "Tu pedido" */
body.woocommerce-checkout h3 {
  color: #F5F5F5 !important;
  -webkit-text-fill-color: #F5F5F5 !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
  margin-bottom: 20px !important;
}

/* Labels required_field */
body.woocommerce-checkout label.required_field,
body.woocommerce-checkout label {
  color: rgba(245,245,245,0.65) !important;
  -webkit-text-fill-color: rgba(245,245,245,0.65) !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
}

/* Checkbox label */
body.woocommerce-checkout label.woocommerce-form__label,
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper label,
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper label a {
  color: rgba(245,245,245,0.75) !important;
  -webkit-text-fill-color: rgba(245,245,245,0.75) !important;
  text-transform: none !important;
  font-size: 14px !important;
  letter-spacing: 0 !important;
}

/* Asterisco required */
body.woocommerce-checkout .required {
  color: #ff6b6b !important;
  -webkit-text-fill-color: #ff6b6b !important;
}

/* Inputs */
body.woocommerce-checkout input[type="text"],
body.woocommerce-checkout input[type="email"],
body.woocommerce-checkout input[type="tel"],
body.woocommerce-checkout input[type="number"],
body.woocommerce-checkout input[type="password"],
body.woocommerce-checkout select,
body.woocommerce-checkout textarea {
  background: #161616 !important;
  border: 1px solid rgba(255,255,255,0.12) !important;
  color: #F5F5F5 !important;
  -webkit-text-fill-color: #F5F5F5 !important;
  border-radius: 10px !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 15px !important;
  padding: 12px 16px !important;
  box-shadow: none !important;
}
body.woocommerce-checkout input:focus,
body.woocommerce-checkout select:focus,
body.woocommerce-checkout textarea:focus {
  border-color: rgba(255,255,255,0.35) !important;
  outline: none !important;
  box-shadow: none !important;
}

/* Cupón banner */
body.woocommerce-checkout .woocommerce-info {
  background: #111 !important;
  border-left-color: rgba(255,255,255,0.2) !important;
  color: rgba(245,245,245,0.65) !important;
  -webkit-text-fill-color: rgba(245,245,245,0.65) !important;
}
body.woocommerce-checkout .woocommerce-info a,
body.woocommerce-checkout .woocommerce-info .showcoupon {
  color: #F5F5F5 !important;
  -webkit-text-fill-color: #F5F5F5 !important;
}

/* Tabla pedido */
body.woocommerce-checkout table.shop_table,
body.woocommerce-checkout .woocommerce-checkout-review-order-table {
  background: #111 !important;
  border: 1px solid rgba(255,255,255,0.08) !important;
  border-radius: 12px !important;
  overflow: hidden !important;
}
body.woocommerce-checkout table.shop_table th,
body.woocommerce-checkout table.shop_table td,
body.woocommerce-checkout table.shop_table tfoot tr th,
body.woocommerce-checkout table.shop_table tfoot tr td {
  color: #F5F5F5 !important;
  -webkit-text-fill-color: #F5F5F5 !important;
  border-color: rgba(255,255,255,0.06) !important;
  font-family: 'DM Sans', sans-serif !important;
  background: transparent !important;
}
body.woocommerce-checkout table.shop_table tfoot tr:last-child th,
body.woocommerce-checkout table.shop_table tfoot tr:last-child td {
  font-weight: 700 !important;
  font-size: 16px !important;
}

/* Sección pago */
body.woocommerce-checkout #payment {
  background: #111 !important;
  border-radius: 12px !important;
}
body.woocommerce-checkout #payment ul.payment_methods {
  border-color: rgba(255,255,255,0.08) !important;
}
body.woocommerce-checkout #payment ul.payment_methods li,
body.woocommerce-checkout #payment ul.payment_methods li label,
body.woocommerce-checkout #payment div.payment_box,
body.woocommerce-checkout #payment div.payment_box p,
body.woocommerce-checkout #payment .about_paypal {
  color: rgba(245,245,245,0.7) !important;
  -webkit-text-fill-color: rgba(245,245,245,0.7) !important;
  font-family: 'DM Sans', sans-serif !important;
  background: transparent !important;
  text-transform: none !important;
  font-size: 14px !important;
  letter-spacing: 0 !important;
}

/* Texto política privacidad */
body.woocommerce-checkout .woocommerce-privacy-policy-text,
body.woocommerce-checkout .woocommerce-privacy-policy-text p,
body.woocommerce-checkout .woocommerce-privacy-policy-text a {
  color: rgba(245,245,245,0.5) !important;
  -webkit-text-fill-color: rgba(245,245,245,0.5) !important;
  font-size: 12px !important;
}

/* Botón Realizar el pedido */
body.woocommerce-checkout #place_order {
  background: #F5F5F5 !important;
  color: #0A0A0A !important;
  -webkit-text-fill-color: #0A0A0A !important;
  border: none !important;
  border-radius: 100px !important;
  font-family: 'DM Sans', sans-serif !important;
  font-weight: 700 !important;
  font-size: 15px !important;
  width: 100% !important;
  padding: 16px !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}
body.woocommerce-checkout #place_order:hover {
  background: #dddddd !important;
  color: #0A0A0A !important;
  -webkit-text-fill-color: #0A0A0A !important;
}

/* "Volver al carrito" */
body.woocommerce-checkout .wc-backward,
body.woocommerce-checkout a.wc-backward {
  color: rgba(245,245,245,0.5) !important;
  -webkit-text-fill-color: rgba(245,245,245,0.5) !important;
}


/* ─── MENÚ HAMBURGUESA MÓVIL ─── */

/* Links del menú desplegable en móvil */
#ast-mobile-header .main-header-menu .menu-item > .menu-link,
#ast-mobile-header .main-navigation .menu-item > .menu-link,
.ast-mobile-header-wrap .main-header-menu .menu-item > .menu-link,
.ast-header-break-point .main-header-menu .menu-item > .menu-link,
.ast-header-break-point .main-navigation ul li a,
#ast-hf-mobile-menu .menu-item > .menu-link {
  color: #F5F5F5 !important;
  -webkit-text-fill-color: #F5F5F5 !important;
  font-family: 'DM Sans', sans-serif !important;
}

/* Fondo del menú desplegable */
#ast-mobile-header .main-header-bar-navigation,
.ast-mobile-header-wrap .main-header-bar-navigation,
.ast-header-break-point .main-header-bar-navigation,
.ast-mobile-header-wrap .main-navigation,
.ast-mobile-header-wrap .main-navigation ul,
.ast-mobile-header-wrap .site-navigation {
  background: #0A0A0A !important;
  background-color: #0A0A0A !important;
}

/* Separadores */
.ast-header-break-point .main-header-menu .menu-item,
.ast-mobile-header-wrap .main-header-menu .menu-item {
  border-color: rgba(255,255,255,0.07) !important;
}

/* Hover */
#ast-mobile-header .main-header-menu .menu-item > .menu-link:hover,
.ast-header-break-point .main-header-menu .menu-item > .menu-link:hover {
  color: rgba(245,245,245,0.6) !important;
  -webkit-text-fill-color: rgba(245,245,245,0.6) !important;
  background: rgba(255,255,255,0.05) !important;
}


/* ─── MENÚ MÓVIL FONDO OSCURO FIX ─── */

/* Contenedor principal del menú móvil */
.ast-mobile-header-content,
.ast-mobile-popup-content,
#ast-mobile-header .ast-mobile-header-content,
.ast-hfb-header .ast-mobile-header-content {
  background: #0A0A0A !important;
  background-color: #0A0A0A !important;
}

/* Navegación */
#ast-mobile-site-navigation,
#ast-mobile-site-navigation ul,
#ast-mobile-site-navigation li,
#ast-hf-mobile-menu,
.ast-header-break-point .main-navigation,
.ast-header-break-point .main-navigation ul {
  background: #0A0A0A !important;
  background-color: #0A0A0A !important;
}

/* Links */
#ast-hf-mobile-menu .menu-item .menu-link,
#ast-mobile-site-navigation .menu-item .menu-link,
.ast-mobile-header-content .menu-item .menu-link {
  color: #F5F5F5 !important;
  -webkit-text-fill-color: #F5F5F5 !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: clamp(28px, 8vw, 48px) !important;
  font-weight: 800 !important;
  border-color: rgba(255,255,255,0.07) !important;
}

/* Header bar móvil */
.ast-primary-header-bar,
.ast-header-break-point .ast-primary-header-bar {
  background: #0A0A0A !important;
  background-color: #0A0A0A !important;
}
