@import url("https://fonts.googleapis.com/css2?family=Newsreader:opsz,wght@6..72,400;6..72,500;6..72,600&family=Mulish:wght@400;500;600;700;800&display=swap");

:root {
  --tsur-bg: #E7EBD9; --tsur-accent: #BC6B4D; --tsur-text: #3B332A;
  --tsur-muted: #6F6555; --tsur-faint: #9A8F7C; --tsur-border: #ECE3D2;
  --tsur-date-bg: #F4EDDF; --tsur-sand: #A07D5A;
}

/* CRITICAL: Hide TEC's default event rows */
.tribe-events-calendar-list__event-row,
.tribe-events-calendar-list__event-wrapper {
  display: none !important;
}

.tribe-events-view--list { font-family: "Mulish", system-ui, sans-serif; }

.tsur-event-card { margin-bottom: 14px; }
.tsur-card-link {
  display: flex !important; gap: 22px; align-items: stretch; background: #fff;
  border: 1px solid var(--tsur-border); border-radius: 18px; padding: 18px !important;
  text-decoration: none !important; transition: transform .18s ease, box-shadow .18s ease;
  color: inherit !important;
}
.tsur-card-link:hover { transform: translateY(-2px); box-shadow: 0 12px 30px rgba(59,51,42,.10); }

.tsur-date-block {
  flex: 0 0 auto; width: 82px; background: var(--tsur-date-bg);
  border-radius: 14px; display: flex; flex-direction: column;
  align-items: center; justify-content: center; padding: 14px 8px;
}
.tsur-weekday, .tsur-month {
  font-size: 11px; font-weight: 700; letter-spacing: .12em;
  text-transform: uppercase; color: var(--tsur-sand);
}
.tsur-day {
  font-family: "Newsreader", Georgia, serif; font-size: 38px;
  font-weight: 500; color: var(--tsur-accent); margin: 3px 0; line-height: 1;
}

.tsur-content { flex: 1; display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.tsur-header { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.tsur-cat {
  display: inline-block; padding: 4px 10px; border-radius: 999px;
  font-size: 12px; font-weight: 700; background: #EAEDDD; color: #5C6738;
}
.tsur-cat--yoga { background: #E8F0E5; color: #3B6B3A; }
.tsur-cat--cuerpo-y-movimiento { background: #E5EDF0; color: #2E5F78; }
.tsur-cat--meditacion { background: #F0E9E5; color: #7B4A35; }
.tsur-cat--terapias { background: #EDE5F0; color: #5C3A78; }
.tsur-cat--retiros { background: #F0EDE5; color: #78622E; }
.tsur-cat--talleres { background: #E5F0ED; color: #2E786B; }
.tsur-locality {
  display: inline-flex !important; align-items: center; gap: 5px;
  font-size: 13px; font-weight: 600; color: var(--tsur-faint);
  text-decoration: none !important;
}
.tsur-title {
  font-family: "Newsreader", Georgia, serif; font-size: 21px;
  font-weight: 600; color: var(--tsur-text); line-height: 1.25; margin: 0;
}
.tsur-meta { display: flex; gap: 16px; align-items: center; flex-wrap: wrap; margin-top: 2px; }
.tsur-schedule, .tsur-venue {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 13px; color: var(--tsur-muted);
}
.tsur-desc {
  font-size: 14px; color: var(--tsur-muted); line-height: 1.5;
  display: -webkit-box; -webkit-line-clamp: 2;
  -webkit-box-orient: vertical; overflow: hidden;
}
.tsur-footer {
  display: flex; align-items: center; justify-content: space-between;
  margin-top: auto; padding-top: 8px;
}
.tsur-price { font-size: 14px; font-weight: 700; color: var(--tsur-sand); }
.tsur-price--free { color: #5C8038; }
.tsur-cta {
  font-size: 13px; font-weight: 700; color: var(--tsur-accent);
  text-decoration: none; display: inline-flex; align-items: center; gap: 4px;
}

/* Filter bar — high specificity to beat Astra */
.tribe-events .tsur-filter-bar {
  background: #fff !important;
  border: 1px solid var(--tsur-border) !important;
  border-radius: 20px !important;
  padding: 20px 22px !important;
  margin-bottom: 24px !important;
}
.tribe-events .tsur-filter-label {
  display: flex; align-items: center; gap: 8px;
  font-size: 13px; font-weight: 700; color: var(--tsur-muted);
  text-transform: uppercase; letter-spacing: .08em;
  margin-bottom: 14px;
}
.tribe-events .tsur-chips { display: flex; flex-wrap: wrap; gap: 8px; }

/* Chips — override Astra's a { padding:0; background:transparent } */
.tribe-events .tsur-filter-bar a.tsur-chip {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  padding: 8px 16px !important;
  border-radius: 999px !important;
  border: 1px solid #E6DCC9 !important;
  background: #FBF8F1 !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: #5B5346 !important;
  text-decoration: none !important;
  line-height: 1 !important;
  transition: background .15s ease !important;
  box-shadow: none !important;
}
.tribe-events .tsur-filter-bar a.tsur-chip:hover {
  background: #F0EAE0 !important;
  color: #5B5346 !important;
}
.tribe-events .tsur-filter-bar a.tsur-chip.tsur-chip--active {
  background: var(--tsur-accent) !important;
  border-color: var(--tsur-accent) !important;
  color: #fff !important;
}
.tsur-chip-count { font-size: 11px; font-weight: 500; opacity: .7; }

/* Month header — force visible */
.tribe-events .tsur-month-header {
  display: flex !important;
  align-items: center !important;
  gap: 16px !important;
  margin: 32px 2px 18px !important;
  min-height: 40px !important;
  overflow: visible !important;
}
.tribe-events .tsur-month-header h2.tsur-month-title {
  font-family: "Newsreader", Georgia, serif !important;
  font-size: 24px !important;
  font-weight: 500 !important;
  color: var(--tsur-text) !important;
  margin: 0 !important;
  padding: 0 !important;
  text-transform: capitalize !important;
  white-space: nowrap !important;
  flex-shrink: 0 !important;
  line-height: 1.3 !important;
}
.tribe-events .tsur-month-header .tsur-month-line {
  flex: 1 !important;
  height: 1px !important;
  background: #E6DCC9 !important;
  display: block !important;
  min-width: 20px !important;
  align-self: center !important;
}

@media (max-width: 640px) {
  .tsur-card-link { flex-direction: column; gap: 14px; padding: 14px !important; }
  .tsur-date-block { flex-direction: row; width: 100%; justify-content: flex-start; gap: 10px; padding: 10px 14px; }
  .tsur-day { font-size: 28px; }
  .tsur-title { font-size: 18px; }
  .tribe-events .tsur-filter-bar a.tsur-chip { font-size: 13px !important; padding: 7px 12px !important; }
}