/* ==========================================
   TRIBE EVENTS — UNIFORM CARD GRID
   3-up desktop / 2-up tablet / 1-up mobile
   Equal-feeling card heights with explicit price output
   ========================================== */

.tribe-common,
.tribe-events {
  --tec-font-family-sans-serif: var(--sc-sans, "DM Sans", sans-serif);
  --tec-font-family-base: var(--sc-sans, "DM Sans", sans-serif);

  --lxv-card-bg: #ffffff;
  --lxv-card-border: rgba(44, 24, 16, 0.12);
  --lxv-card-shadow: 0 10px 30px rgba(0, 0, 0, 0.06);

  --lxv-text: var(--sc-text, #3A3530);
  --lxv-text-light: var(--sc-text-lt, #7A726A);
  --lxv-heading: var(--sc-deep, #2C1810);

  --lxv-gold: var(--sc-gold, #C4A265);
  --lxv-gold-hover: var(--sc-gold-lt, #D4B87A);

  --lxv-tag-bg: #f7f3ec;
  --lxv-tag-text: #5c4a3e;
}

/* Remove month separators */
.tribe-events .tribe-events-calendar-list__month-separator,
.tribe-events .tribe-events-calendar-list__month-separator-row,
.tribe-events .tribe-events-calendar-list__month-separator-text {
  display: none !important;
}

/* Grid */
.tribe-events .tribe-events-calendar-list {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2rem !important;
  align-items: stretch !important;
  margin-top: 0 !important;
}

.tribe-events .tribe-events-calendar-list__event-row {
  display: contents !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

.tribe-events .tribe-events-calendar-list__event-wrapper {
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex !important;
}

/* Card shell */
.tribe-events .tribe-events-calendar-list__event,
.tribe-events article.tribe-events-calendar-list__event {
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  min-height: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  background: var(--lxv-card-bg) !important;
  border: 1px solid var(--lxv-card-border) !important;
  box-shadow: var(--lxv-card-shadow) !important;
  overflow: hidden !important;
  border-radius: 0 !important;
  position: relative !important;
}

/* This creates a consistent card height target across the grid */
@media (min-width: 1025px) {
  .tribe-events .tribe-events-calendar-list__event,
  .tribe-events article.tribe-events-calendar-list__event {
    min-height: 36rem !important;
  }
}

@media (min-width: 641px) and (max-width: 1024px) {
  .tribe-events .tribe-events-calendar-list__event,
  .tribe-events article.tribe-events-calendar-list__event {
    min-height: 34rem !important;
  }
}

/* Hide unwanted pieces */
.tribe-events .tribe-events-calendar-list__event-date-tag,
.tribe-events .tribe-events-calendar-list__event-description,
.tribe-events .tribe-events-calendar-list__event-cost,
.tribe-events .tribe-events-c-small-cta__price,
.tribe-events .tribe-events-calendar-list__event-featured-image-wrapper:empty {
  display: none !important;
}

/* Image */
.tribe-events .lxv-event-image-link,
.tribe-events .tribe-events-calendar-list__event-featured-image-link {
  display: block !important;
  width: 100% !important;
  line-height: 0 !important;
  background: #f3f0eb;
  overflow: hidden !important;
}

.tribe-events .tribe-events-calendar-list__event-featured-image-wrapper,
.tribe-events .tribe-events-calendar-list__event-featured-image {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
}

.tribe-events .tribe-events-calendar-list__event-featured-image img,
.tribe-events .tribe-events-calendar-list__event-featured-image-wrapper img,
.tribe-events .lxv-event-image-link img {
  display: block !important;
  width: 100% !important;
  height: 260px !important;
  object-fit: cover !important;
  object-position: center center !important;
  transition: transform 0.35s ease !important;
}

.tribe-events .tribe-events-calendar-list__event:hover .tribe-events-calendar-list__event-featured-image img,
.tribe-events .tribe-events-calendar-list__event:hover .tribe-events-calendar-list__event-featured-image-wrapper img,
.tribe-events .tribe-events-calendar-list__event:hover .lxv-event-image-link img {
  transform: scale(1.03);
}

/* Body */
.tribe-events .tribe-events-calendar-list__event-details {
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  flex: 1 1 auto !important;
  padding: 1.35rem 1.35rem 1.4rem !important;
  background: #fff !important;
}

.tribe-events header.tribe-events-calendar-list__event-header {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  margin: 0 !important;
  padding: 0 !important;
  gap: 0 !important;
  background: transparent !important;
  z-index: auto !important;
}

/* Tags */
.tribe-events .tribe-events-event-categories,
.tribe-events .tribe-events-calendar-list__event-categories,
.tribe-events .tribe-events-calendar-list__event-category {
  order: 1;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 0.45rem !important;
  margin: 0 0 0.95rem 0 !important;
  padding: 0 !important;
}

.tribe-events .tribe-events-event-categories a,
.tribe-events .tribe-events-calendar-list__event-category a,
.tribe-events .tribe-events-calendar-list__event-categories a,
.tribe-events .tribe-events-calendar-list__event-category span,
.tribe-events .tribe-events-event-categories span {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0.42rem 0.7rem !important;
  background: var(--lxv-tag-bg) !important;
  color: var(--lxv-tag-text) !important;
  font-family: var(--sc-sans, "DM Sans", sans-serif) !important;
  font-size: 0.54rem !important;
  font-weight: 600 !important;
  line-height: 0.75 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  border: 1px solid rgba(44, 24, 16, 0.08) !important;
  border-radius: 0 !important;
}

/* Title */
.tribe-events .tribe-events-calendar-list__event-title {
  order: 2;
  margin: 0 0 0.7rem 0 !important;
  padding: 0 !important;
  font-family: var(--sc-serif, "Cormorant Garamond", serif) !important;
  font-size: 1.425rem !important;
  font-weight: 500 !important;
  line-height: 1.0 !important;
  letter-spacing: 0.02em !important;
}

.tribe-events .tribe-events-calendar-list__event-title a,
.tribe-events .tribe-events-calendar-list__event-title-link {
  color: var(--lxv-heading) !important;
  text-decoration: none !important;
  transition: color 0.2s ease !important;
}

.tribe-events .tribe-events-calendar-list__event-title a:hover,
.tribe-events .tribe-events-calendar-list__event-title-link:hover {
  color: #6f4c2b !important;
}

/* Date/time */
.tribe-events .tribe-events-calendar-list__event-datetime-wrapper,
.tribe-events .tribe-events-calendar-list__event-date-time,
.tribe-events time.tribe-events-calendar-list__event-datetime {
  order: 3;
}

.tribe-events time.tribe-events-calendar-list__event-datetime,
.tribe-events .tribe-events-calendar-list__event-datetime-wrapper {
  display: block !important;
  margin: 0 0 0.45rem 0 !important;
  padding: 0 !important;
  font-family: var(--sc-sans, "DM Sans", sans-serif) !important;
  font-size: 0.85rem !important;
  font-weight: 600 !important;
  line-height: 1.09 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  color: var(--lxv-text-light) !important;
}

/* Location */
.tribe-events .tribe-events-calendar-list__event-venue,
.tribe-events .tribe-events-calendar-list__event-venue-title,
.tribe-events .tribe-events-calendar-list__event-venue-address,
.tribe-events address.tribe-events-calendar-list__event-venue {
  order: 4;
  display: block !important;
  margin: 0 0 0.9rem 0 !important;
  padding: 0 !important;
  font-family: var(--sc-sans, "DM Sans", sans-serif) !important;
  font-style: normal !important;
  font-size: 0.92rem !important;
  font-weight: 400 !important;
  line-height: 1.16 !important;
  color: var(--lxv-text) !important;
}

.tribe-events .tribe-events-calendar-list__event-venue-title {
  font-weight: 500 !important;
  color: var(--lxv-text) !important;
}

/* Explicit price block from PHP */
.tribe-events .lxv-event-price {
  order: 5;
  display: flex !important;
  align-items: baseline !important;
  gap: 0.3rem !important;
  margin: 0 0 0.4rem 0 !important;
  font-family: var(--sc-sans, "DM Sans", sans-serif) !important;
  color: var(--sc-deep, #2C1810) !important;
}

.tribe-events .lxv-event-price__label {
  font-size: 0.8rem !important;
  font-weight: 400 !important;
  color: var(--sc-text-lt, #7A726A) !important;
}

.tribe-events .lxv-event-price__value {
  font-size: 0.735rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em !important;
}

/* CTA pinned to bottom */
.tribe-events .tribe-events-v2-book-button-wrapper {
  order: 6;
  margin-top: auto !important;
  padding-top: 0 !important;
}

.tribe-events .lxv-event-button,
.tribe-events a.lxv-event-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 46px !important;
  padding: 0.9rem 1.35rem !important;
  background: var(--lxv-gold) !important;
  color: #2c1810 !important;
  border: 1px solid var(--lxv-gold) !important;
  border-radius: 0 !important;
  font-family: var(--sc-sans, "DM Sans", sans-serif) !important;
  font-size: 0.6rem !important;
  font-weight: 700 !important;
  line-height: 0.75 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease !important;
}

.tribe-events .lxv-event-button:hover,
.tribe-events a.lxv-event-button:hover {
  background: var(--lxv-gold-hover) !important;
  border-color: var(--lxv-gold-hover) !important;
  color: #2c1810 !important;
  transform: translateY(-1px);
}

/* Responsive */
@media (max-width: 1024px) {
  .tribe-events .tribe-events-calendar-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.75rem !important;
  }

  .tribe-events .tribe-events-calendar-list__event-featured-image img,
  .tribe-events .tribe-events-calendar-list__event-featured-image-wrapper img,
  .tribe-events .lxv-event-image-link img {
    height: 240px !important;
  }

  .tribe-events .tribe-events-calendar-list__event-title {
    font-size: 1.275rem !important;
  }
}

@media (max-width: 640px) {
  .tribe-events .tribe-events-calendar-list {
    grid-template-columns: 1fr;
    gap: 1.4rem !important;
  }

  .tribe-events .tribe-events-calendar-list__event,
  .tribe-events article.tribe-events-calendar-list__event {
    min-height: 0 !important;
  }

  .tribe-events .tribe-events-calendar-list__event-featured-image img,
  .tribe-events .tribe-events-calendar-list__event-featured-image-wrapper img,
  .tribe-events .lxv-event-image-link img {
    height: 220px !important;
  }

  .tribe-events .tribe-events-calendar-list__event-details {
    padding: 1.1rem 1rem 1.2rem !important;
  }

  .tribe-events .tribe-events-calendar-list__event-title {
    font-size: 1.1rem !important;
    line-height: 1.0 !important;
  }

  .tribe-events time.tribe-events-calendar-list__event-datetime,
  .tribe-events .tribe-events-calendar-list__event-datetime-wrapper,
  .tribe-events .tribe-events-calendar-list__event-venue,
  .tribe-events .tribe-events-calendar-list__event-venue-title,
  .tribe-events .tribe-events-calendar-list__event-venue-address,
  .tribe-events address.tribe-events-calendar-list__event-venue,
  .tribe-events .lxv-event-price__label,
  .tribe-events .lxv-event-price__value {
    font-size: 0.675rem !important;
  }

  .tribe-events .lxv-event-button,
  .tribe-events a.lxv-event-button {
    width: 100% !important;
  }
}

/* Subscribe to Calendar button */
.tribe-events .tribe-events-c-subscribe-dropdown__button,
.tribe-events .tribe-events-c-subscribe-dropdown__button:focus,
.tribe-events .tribe-events-c-subscribe-dropdown__button:active,
.tribe-events button.tribe-events-c-subscribe-dropdown__button {
  background: var(--lxv-gold) !important;
  color: #2c1810 !important;
  border: 1px solid var(--lxv-gold) !important;
  border-radius: 0 !important;
  font-family: var(--sc-sans, "DM Sans", sans-serif) !important;
  font-size: 0.6rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  transition: background 0.2s ease, border-color 0.2s ease !important;
}

.tribe-events .tribe-events-c-subscribe-dropdown__button:hover {
  background: var(--lxv-gold-hover) !important;
  border-color: var(--lxv-gold-hover) !important;
  color: #2c1810 !important;
}

.tribe-events .tribe-events-c-subscribe-dropdown__button-icon svg,
.tribe-events .tribe-events-c-subscribe-dropdown__button-icon path {
  fill: #2c1810 !important;
}

.tribe-events .tribe-events-c-subscribe-dropdown__list,
.tribe-events .tribe-events-c-subscribe-dropdown__container {
  border-radius: 0 !important;
  border-color: var(--lxv-card-border) !important;
}

.tribe-events .tribe-events-c-subscribe-dropdown__list-item a {
  color: var(--lxv-text) !important;
  font-family: var(--sc-sans, "DM Sans", sans-serif) !important;
}

.tribe-events .tribe-events-c-subscribe-dropdown__list-item a:hover {
  color: var(--lxv-heading) !important;
  background: var(--lxv-tag-bg) !important;
}

/* Safety */
.tribe-events .tribe-common-l-container,
.tribe-events .tribe-events-l-container,
.tribe-events .tribe-events-view {
  overflow: visible !important;
}

.tribe-events header.tribe-events-header,
.tribe-events header.tribe-events-calendar-list__event-header {
  background-image: none !important;
}