/* ==========================================================================
   Ticketality Unified Card System
   Shared public styling for event + place cards across search, destination,
   school/vendor pages, related events, and cross-sells.
   ========================================================================= */

:root {
  --tktas-card-border: #dbe2ea;
  --tktas-card-border-strong: #c9d4df;
  --tktas-card-radius: 16px;
  --tktas-card-shadow: 0 8px 22px rgba(15, 23, 42, 0.06);
  --tktas-card-shadow-hover: 0 12px 30px rgba(15, 23, 42, 0.09);
  --tktas-card-blue: #0b4c84;
  --tktas-card-text: #0f172a;
  --tktas-card-muted: #666;
  --tktas-card-divider: #eef2f6;
}

/* -------------------------------------------------------------------------- */
/* Search page wrapper fix                                                     */
/* -------------------------------------------------------------------------- */
body .tktas-events-page > .tktas-events-grid {
  display: block !important;
}

/* -------------------------------------------------------------------------- */
/* Grid containers                                                             */
/* -------------------------------------------------------------------------- */
body .tktas-events-simple,
body .tktas-events-list,
body .tktas-event-cards-grid,
body .tktas-dg-panel .tktas-events-grid,
body .tktas-places-grid,
body .tktas-related-products ul.products,
body .cross-sells.tktas-related-products ul.products,
body .single-product ul.products.products.columns-4 {
  display: grid !important;
  gap: 24px !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  align-items: stretch !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

body .tktas-events-simple.columns-4,
body .tktas-events-simple.columns-3,
body .tktas-events-simple.columns-2,
body .tktas-events-list.columns-4,
body .tktas-events-list.columns-3,
body .tktas-events-list.columns-2,
body .tktas-dg-panel .tktas-events-grid.columns-4,
body .tktas-dg-panel .tktas-events-grid.columns-3,
body .tktas-dg-panel .tktas-events-grid.columns-2,
body .tktas-places-grid.columns-4,
body .tktas-places-grid.columns-3,
body .tktas-places-grid.columns-2 {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

body .tktas-related-products li.product,
body .cross-sells.tktas-related-products li.product,
body .single-product ul.products li.product.tktas-event-product {
  float: none !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

/* -------------------------------------------------------------------------- */
/* Shared card shell                                                           */
/* -------------------------------------------------------------------------- */
body .tktas-events-simple .tktas-event-card,
body .tktas-events-list .tktas-event-card,
body .tktas-event-cards-grid .tktas-event-card,
body .tktas-dg-panel .tktas-event-card,
body .tktas-related-products li.product .tktas-custom-card,
body .tktas-related-products li.product .tktas-event-card,
body .single-product ul.products li.product.tktas-event-product .tktas-custom-card,
body .tktas-places-grid .tktas-place-card {
  background: #fff !important;
  border: 1px solid var(--tktas-card-border) !important;
  border-radius: var(--tktas-card-radius) !important;
  box-shadow: var(--tktas-card-shadow) !important;
  overflow: hidden !important;
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease !important;
  min-height: 132px !important;
  height: 100% !important;
}

body .tktas-events-simple .tktas-event-card:hover,
body .tktas-events-list .tktas-event-card:hover,
body .tktas-event-cards-grid .tktas-event-card:hover,
body .tktas-dg-panel .tktas-event-card:hover,
body .tktas-related-products li.product .tktas-custom-card:hover,
body .tktas-related-products li.product .tktas-event-card:hover,
body .single-product ul.products li.product.tktas-event-product .tktas-custom-card:hover,
body .tktas-places-grid .tktas-place-card:hover {
  border-color: var(--tktas-card-border-strong) !important;
  box-shadow: var(--tktas-card-shadow-hover) !important;
  transform: translateY(-3px) !important;
}

/* Shared inner layout */
body .tktas-events-simple .tktas-event-card > .tktas-card-link,
body .tktas-events-list .tktas-event-card > .tktas-card-link,
body .tktas-event-cards-grid .tktas-event-card > .tktas-card-link,
body .tktas-related-products li.product .tktas-custom-card > .tktas-card-link,
body .tktas-related-products li.product .tktas-event-card > .tktas-card-link,
body .single-product ul.products li.product.tktas-event-product .tktas-custom-card > .tktas-card-link,
body .tktas-dg-panel .tktas-event-card > .tktas-event-link,
body .tktas-dg-panel .tktas-event-card > .tktas-card-link,
body .tktas-places-grid .tktas-place-card {
  display: grid !important;
  grid-template-columns: 124px minmax(0, 1fr) !important;
  width: 100% !important;
  min-height: 132px !important;
  height: 100% !important;
  align-items: stretch !important;
  text-decoration: none !important;
  color: inherit !important;
}


/* Destination page shared cards use the canonical card classes too */
body .tktas-dg-panel .tktas-event-card > .tktas-card-link {
  grid-template-columns: 124px minmax(0, 1fr) !important;
}
body .tktas-dg-panel .tktas-card-content {
  justify-content: center !important;
}
/* Media */
body .tktas-events-simple .tktas-card-image,
body .tktas-events-list .tktas-card-image,
body .tktas-event-cards-grid .tktas-card-image,
body .tktas-related-products .tktas-card-image,
body .single-product ul.products li.product.tktas-event-product .tktas-card-image,
body .tktas-dg-panel .tktas-event-img,
body .tktas-dg-panel .tktas-card-image,
body .tktas-places-grid .tktas-place-img,
body .tktas-card-no-image {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 132px !important;
  height: 100% !important;
  background: #fff !important;
  border-right: 1px solid var(--tktas-card-divider) !important;
  overflow: hidden !important;
  padding: 0 !important;
}

body .tktas-events-simple .tktas-card-image img,
body .tktas-events-list .tktas-card-image img,
body .tktas-event-cards-grid .tktas-card-image img,
body .tktas-related-products .tktas-card-image img,
body .single-product ul.products li.product.tktas-event-product .tktas-card-image img,
body .tktas-dg-panel .tktas-event-img img,
body .tktas-dg-panel .tktas-card-image img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  padding: 12px !important;
  object-fit: contain !important;
  object-position: center !important;
  background: transparent !important;
}

body .tktas-places-grid .tktas-place-img {
  min-height: 136px !important;
}

body .tktas-places-grid .tktas-place-img img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
}

/* Shared badges */
.tktas-badge,
body .tktas-events-simple .tktas-card-badge,
body .tktas-events-list .tktas-card-badge,
body .tktas-event-cards-grid .tktas-card-badge,
body .tktas-dg-panel .tktas-badge,
body .tktas-dg-panel .tktas-card-badge,
body .tktas-related-products .tktas-card-badge,
body .single-product ul.products li.product.tktas-event-product .tktas-card-badge,
body .tktas-places-grid .tktas-place-badges .tktas-badge,
body .tktas-places-grid .tktas-culture-tag {
  position: absolute !important;
  top: 8px !important;
  left: 8px !important;
  display: inline-flex !important;
  align-items: center !important;
  padding: 3px 8px !important;
  margin: 0 !important;
  border-radius: 999px !important;
  border: 1px solid #fff !important;
  background: rgba(255,255,255,.97) !important;
  color: var(--tktas-card-blue) !important;
  font-family: "Outfit", Arial, sans-serif !important;
  font-size: 9px !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  letter-spacing: .05em !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
  z-index: 2 !important;
}

body .tktas-places-grid .tktas-place-badges {
  position: absolute !important;
  top: 8px !important;
  left: 8px !important;
  display: flex !important;
  gap: 6px !important;
  max-width: calc(100% - 16px) !important;
  z-index: 2 !important;
}

body .tktas-places-grid .tktas-place-badges .tktas-badge,
body .tktas-places-grid .tktas-culture-tag {
  position: static !important;
}

/* Content shells */
body .tktas-events-simple .tktas-card-content,
body .tktas-events-list .tktas-card-content,
body .tktas-event-cards-grid .tktas-card-content,
body .tktas-related-products .tktas-card-content,
body .single-product ul.products li.product.tktas-event-product .tktas-card-content,
body .tktas-dg-panel .tktas-event-info,
body .tktas-dg-panel .tktas-card-content,
body .tktas-places-grid .tktas-place-info {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: center !important;
  gap: 4px !important;
  min-width: 0 !important;
  min-height: 132px !important;
  padding: 16px 16px 16px 18px !important;
  margin: 0 !important;
}

/* Event typography */
body .tktas-events-simple .tktas-card-category,
body .tktas-events-list .tktas-card-category,
body .tktas-event-cards-grid .tktas-card-category,
body .tktas-related-products .tktas-card-category,
body .single-product ul.products li.product.tktas-event-product .tktas-card-category,
body .tktas-dg-panel .tktas-event-type,
body .tktas-dg-panel .tktas-card-category,
body .tktas-places-grid .tktas-place-type {
  font-family: "Outfit", Arial, sans-serif !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: .07em !important;
  text-transform: uppercase !important;
  color: #666 !important;
  line-height: 1.2 !important;
  margin: 0 !important;
}

body .tktas-events-simple .tktas-card-date,
body .tktas-events-list .tktas-card-date,
body .tktas-event-cards-grid .tktas-card-date,
body .tktas-related-products .tktas-card-date,
body .single-product ul.products li.product.tktas-event-product .tktas-card-date,
body .tktas-dg-panel .tktas-event-date,
body .tktas-dg-panel .tktas-card-date {
  font-family: "Outfit", Arial, sans-serif !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  color: var(--tktas-card-blue) !important;
  line-height: 1.2 !important;
  margin: 0 !important;
}

body .tktas-events-simple .tktas-card-title,
body .tktas-events-list .tktas-card-title,
body .tktas-event-cards-grid .tktas-card-title,
body .tktas-related-products .tktas-card-title,
body .single-product ul.products li.product.tktas-event-product .tktas-card-title,
body .tktas-dg-panel .tktas-event-title,
body .tktas-dg-panel .tktas-card-title,
body .tktas-places-grid .tktas-place-name {
  font-family: "Outfit", Arial, sans-serif !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  color: var(--tktas-card-text) !important;
  line-height: 1.32 !important;
  margin: 0 !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

body .tktas-events-simple .tktas-card-venue,
body .tktas-events-list .tktas-card-venue,
body .tktas-event-cards-grid .tktas-card-venue,
body .tktas-related-products .tktas-card-venue,
body .single-product ul.products li.product.tktas-event-product .tktas-card-venue,
body .tktas-dg-panel .tktas-event-venue,
body .tktas-dg-panel .tktas-card-venue,
body .tktas-places-grid .tktas-place-addr {
  display: flex !important;
  align-items: flex-start !important;
  gap: 6px !important;
  margin: 0 !important;
  padding: 0 !important;
  font-family: "Outfit", Arial, sans-serif !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  color: #666 !important;
  line-height: 1.35 !important;
}

body .tktas-events-simple .tktas-card-venue span,
body .tktas-events-list .tktas-card-venue span,
body .tktas-event-cards-grid .tktas-card-venue span,
body .tktas-related-products .tktas-card-venue span,
body .single-product ul.products li.product.tktas-event-product .tktas-card-venue span,
body .tktas-dg-panel .tktas-event-venue span,
body .tktas-dg-panel .tktas-card-venue span {
  margin: 0 !important;
}

body .tktas-events-simple .tktas-card-venue svg,
body .tktas-events-list .tktas-card-venue svg,
body .tktas-event-cards-grid .tktas-card-venue svg,
body .tktas-related-products .tktas-card-venue svg,
body .single-product ul.products li.product.tktas-event-product .tktas-card-venue svg,
body .tktas-dg-panel .tktas-event-venue svg,
body .tktas-dg-panel .tktas-card-venue svg {
  width: 12px !important;
  height: 12px !important;
  min-width: 12px !important;
  flex-shrink: 0 !important;
  color: #FFC107 !important;
  margin-top: 3px !important;
}

/* Remove auto margin hacks */
body .tktas-events-simple .tktas-card-venue,
body .tktas-events-list .tktas-card-venue,
body .tktas-event-cards-grid .tktas-card-venue,
body .tktas-related-products .tktas-card-venue,
body .single-product ul.products li.product.tktas-event-product .tktas-card-venue,
body .tktas-dg-panel .tktas-event-venue,
body .tktas-dg-panel .tktas-card-venue,
body .tktas-dg-panel .tktas-event-price,
body .tktas-places-grid .tktas-place-addr,
body .tktas-places-grid .tktas-place-btns {
  margin-top: 0 !important;
}

/* Place specifics */
body .tktas-places-grid .tktas-place-info {
  gap: 6px !important;
}

body .tktas-places-grid .tktas-place-meta {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  margin: 0 !important;
  font-family: "Outfit", Arial, sans-serif !important;
  font-size: 14px !important;
}

body .tktas-places-grid .tktas-price {
  color: #16a34a !important;
  font-weight: 500 !important;
}

/* Single product culture badge */
body .woocommerce-product-gallery,
body .woocommerce-product-gallery__wrapper,
body .motta-product-images-badges,
body .product-fixed-gallery__spacing {
  position: relative !important;
}

body .tktas-single-culture-badge {
  position: absolute !important;
  top: 16px !important;
  left: 16px !important;
  right: auto !important;
  bottom: auto !important;
  z-index: 12 !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  margin: 0 !important;
  pointer-events: none !important;
}

body .tktas-single-culture-badge .tktas-culture-badge {
  display: inline-flex !important;
  align-items: center !important;
  padding: 4px 10px !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.97) !important;
  border: 1px solid #fff !important;
  color: var(--tktas-card-blue) !important;
  font-family: "Outfit", Arial, sans-serif !important;
  font-size: 9px !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  letter-spacing: .05em !important;
  text-transform: uppercase !important;
  }

/* Carousel / linked products parity */
body .related.products .linked-products-carousel ul.products,
body .upsells.products .linked-products-carousel ul.products,
body .woocommerce-cart .cross-sells .linked-products-carousel ul.products,
body .related.products .products-carousel ul.products,
body .upsells.products .products-carousel ul.products,
body .woocommerce-cart .cross-sells .products-carousel ul.products {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 24px !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

body .related.products .linked-products-carousel ul.products li.product,
body .upsells.products .linked-products-carousel ul.products li.product,
body .woocommerce-cart .cross-sells .linked-products-carousel ul.products li.product,
body .related.products .products-carousel ul.products li.product,
body .upsells.products .products-carousel ul.products li.product,
body .woocommerce-cart .cross-sells .products-carousel ul.products li.product {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
}

body .related.products .linked-products-carousel .tktas-custom-card,
body .upsells.products .linked-products-carousel .tktas-custom-card,
body .woocommerce-cart .cross-sells .linked-products-carousel .tktas-custom-card,
body .related.products .products-carousel .tktas-custom-card,
body .upsells.products .products-carousel .tktas-custom-card,
body .woocommerce-cart .cross-sells .products-carousel .tktas-custom-card,
body .related.products .linked-products-carousel .tktas-event-card,
body .upsells.products .linked-products-carousel .tktas-event-card,
body .woocommerce-cart .cross-sells .linked-products-carousel .tktas-event-card,
body .related.products .products-carousel .tktas-event-card,
body .upsells.products .products-carousel .tktas-event-card,
body .woocommerce-cart .cross-sells .products-carousel .tktas-event-card {
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid var(--tktas-card-border) !important;
  box-shadow: var(--tktas-card-shadow) !important;
  transform: none !important;
}

body .related.products .linked-products-carousel .tktas-custom-card:hover,
body .upsells.products .linked-products-carousel .tktas-custom-card:hover,
body .woocommerce-cart .cross-sells .linked-products-carousel .tktas-custom-card:hover,
body .related.products .products-carousel .tktas-custom-card:hover,
body .upsells.products .products-carousel .tktas-custom-card:hover,
body .woocommerce-cart .cross-sells .products-carousel .tktas-custom-card:hover,
body .related.products .linked-products-carousel .tktas-event-card:hover,
body .upsells.products .linked-products-carousel .tktas-event-card:hover,
body .woocommerce-cart .cross-sells .linked-products-carousel .tktas-event-card:hover,
body .related.products .products-carousel .tktas-event-card:hover,
body .upsells.products .products-carousel .tktas-event-card:hover,
body .woocommerce-cart .cross-sells .products-carousel .tktas-event-card:hover,
body .related.products .linked-products-carousel li.product:focus-within .tktas-custom-card,
body .upsells.products .linked-products-carousel li.product:focus-within .tktas-custom-card,
body .woocommerce-cart .cross-sells .linked-products-carousel li.product:focus-within .tktas-custom-card,
body .related.products .products-carousel li.product:focus-within .tktas-custom-card,
body .upsells.products .products-carousel li.product:focus-within .tktas-custom-card,
body .woocommerce-cart .cross-sells .products-carousel li.product:focus-within .tktas-custom-card,
body .related.products .linked-products-carousel li.product:focus-within .tktas-event-card,
body .upsells.products .linked-products-carousel li.product:focus-within .tktas-event-card,
body .woocommerce-cart .cross-sells .linked-products-carousel li.product:focus-within .tktas-event-card,
body .related.products .products-carousel li.product:focus-within .tktas-event-card,
body .upsells.products .products-carousel li.product:focus-within .tktas-event-card,
body .woocommerce-cart .cross-sells .products-carousel li.product:focus-within .tktas-event-card {
  border-color: var(--tktas-card-border) !important;
  box-shadow: var(--tktas-card-shadow) !important;
  transform: none !important;
  outline: none !important;
}

/* Responsive */
@media (max-width: 1024px) {
  body .tktas-events-simple,
  body .tktas-events-list,
  body .tktas-event-cards-grid,
  body .tktas-dg-panel .tktas-events-grid,
  body .tktas-places-grid,
  body .tktas-events-simple.columns-4,
  body .tktas-events-simple.columns-3,
  body .tktas-events-simple.columns-2,
  body .tktas-events-list.columns-4,
  body .tktas-events-list.columns-3,
  body .tktas-events-list.columns-2,
  body .tktas-dg-panel .tktas-events-grid.columns-4,
  body .tktas-dg-panel .tktas-events-grid.columns-3,
  body .tktas-dg-panel .tktas-events-grid.columns-2,
  body .tktas-places-grid.columns-4,
  body .tktas-places-grid.columns-3,
  body .tktas-places-grid.columns-2,
  body .tktas-related-products ul.products,
  body .cross-sells.tktas-related-products ul.products,
  body .single-product ul.products.products.columns-4,
  body .related.products .linked-products-carousel ul.products,
  body .upsells.products .linked-products-carousel ul.products,
  body .woocommerce-cart .cross-sells .linked-products-carousel ul.products,
  body .related.products .products-carousel ul.products,
  body .upsells.products .products-carousel ul.products,
  body .woocommerce-cart .cross-sells .products-carousel ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 767px) {
  body .tktas-events-simple,
  body .tktas-events-simple.columns-4,
  body .tktas-events-simple.columns-3,
  body .tktas-events-simple.columns-2,
  body .tktas-events-list,
  body .tktas-event-cards-grid,
  body .tktas-community-events-grid,
  body .tktas-dg-panel .tktas-events-grid,
  body .tktas-dg-panel .tktas-events-grid.columns-4,
  body .tktas-dg-panel .tktas-events-grid.columns-3,
  body .tktas-dg-panel .tktas-events-grid.columns-2,
  body .tktas-dg-panel .tktas-places-grid,
  body .tktas-dg-panel .tktas-places-grid.columns-4,
  body .tktas-dg-panel .tktas-places-grid.columns-3,
  body .tktas-dg-panel .tktas-places-grid.columns-2,
  body .tktas-places-grid,
  body .tktas-places-grid.columns-4,
  body .tktas-places-grid.columns-3,
  body .tktas-places-grid.columns-2,
  body .tktas-related-products ul.products,
  body .cross-sells.tktas-related-products ul.products,
  body .single-product ul.products.products.columns-4,
  body .single-product ul.products.products.columns-3,
  body .single-product ul.products.products.columns-2,
  body .related.products .linked-products-carousel ul.products,
  body .upsells.products .linked-products-carousel ul.products,
  body .woocommerce-cart .cross-sells .linked-products-carousel ul.products,
  body .related.products .products-carousel ul.products,
  body .upsells.products .products-carousel ul.products,
  body .woocommerce-cart .cross-sells .products-carousel ul.products,
  body.post-type-archive-product ul.products,
  body.tax-product_cat ul.products,
  body.tax-product_tag ul.products,
  body.tax-product ul.products,
  body.tax-event-category ul.products,
  body.tax-event_tag ul.products,
  body.archive.post-type-archive-product ul.products,
  body.woocommerce-shop ul.products {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 14px !important;
  }

  body .tktas-events-simple > *,
  body .tktas-events-simple.columns-4 > *,
  body .tktas-events-simple.columns-3 > *,
  body .tktas-events-simple.columns-2 > *,
  body .tktas-events-list > *,
  body .tktas-event-cards-grid > *,
  body .tktas-community-events-grid > *,
  body .tktas-dg-panel .tktas-events-grid > *,
  body .tktas-dg-panel .tktas-places-grid > *,
  body .tktas-places-grid > *,
  body .tktas-related-products ul.products > li.product,
  body .cross-sells.tktas-related-products ul.products > li.product,
  body .single-product ul.products.products.columns-4 > li.product,
  body .single-product ul.products.products.columns-3 > li.product,
  body .single-product ul.products.products.columns-2 > li.product,
  body .related.products .linked-products-carousel ul.products > li.product,
  body .upsells.products .linked-products-carousel ul.products > li.product,
  body .woocommerce-cart .cross-sells .linked-products-carousel ul.products > li.product,
  body .related.products .products-carousel ul.products > li.product,
  body .upsells.products .products-carousel ul.products > li.product,
  body .woocommerce-cart .cross-sells .products-carousel ul.products > li.product,
  body.post-type-archive-product ul.products > li.product,
  body.tax-product_cat ul.products > li.product,
  body.tax-product_tag ul.products > li.product,
  body.tax-product ul.products > li.product,
  body.tax-event-category ul.products > li.product,
  body.tax-event_tag ul.products > li.product,
  body.archive.post-type-archive-product ul.products > li.product,
  body.woocommerce-shop ul.products > li.product {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    flex: 0 0 100% !important;
    grid-column: 1 / -1 !important;
    margin: 0 !important;
  }

  body .tktas-event-card,
  body .tktas-place-card,
  body .tktas-community-event,
  body .tktas-community-events-grid .tktas-event-card,
  body .tktas-community-events-grid .tktas-community-event-card {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
  }

  body .tktas-event-card > .tktas-card-link,
  body .tktas-place-card > .tktas-place-link,
  body .tktas-community-event > .tktas-card-link,
  body .tktas-community-events-grid .tktas-event-card > .tktas-card-link,
  body .tktas-community-events-grid .tktas-community-event-card > .tktas-card-link {
    display: grid !important;
    grid-template-columns: 120px minmax(0, 1fr) !important;
    min-height: 0 !important;
    height: auto !important;
    align-items: stretch !important;
    overflow: visible !important;
  }

  body .tktas-event-card .tktas-card-image,
  body .tktas-place-card .tktas-place-image,
  body .tktas-community-event .tktas-card-image,
  body .tktas-community-events-grid .tktas-event-card .tktas-card-image,
  body .tktas-community-events-grid .tktas-community-event-card .tktas-card-image {
    width: 120px !important;
    min-width: 120px !important;
    max-width: 120px !important;
    min-height: 94px !important;
  }

  body .tktas-event-card,
  body .tktas-place-card,
  body .tktas-community-event,
  body .tktas-community-event-card {
    overflow: visible !important;
  }

  body .tktas-event-card .tktas-card-content,
  body .tktas-place-card .tktas-place-info,
  body .tktas-community-event .tktas-card-content,
  body .tktas-community-events-grid .tktas-event-card .tktas-card-content,
  body .tktas-community-events-grid .tktas-community-event-card .tktas-card-content {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    padding: 8px 10px 8px 12px !important;
    gap: 2px !important;
    overflow: visible !important;
  }

  body .tktas-culture-badge,
  body .tktas-culture-tag,
  body .tktas-card-badge,
  body .tktas-badge {
    max-width: calc(100% - 8px) !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    box-sizing: border-box !important;
  }

  body .tktas-event-card .tktas-card-title,
  body .tktas-place-card .tktas-place-name,
  body .tktas-community-event .tktas-card-title,
  body .tktas-community-events-grid .tktas-event-card .tktas-card-title,
  body .tktas-community-events-grid .tktas-community-event-card .tktas-card-title {
    -webkit-line-clamp: 2 !important;
    line-height: 1.25 !important;
    overflow: hidden !important;
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    word-break: break-word !important;
  }

  body .tktas-events-simple .tktas-card-badge,
  body .tktas-events-list .tktas-card-badge,
  body .tktas-event-cards-grid .tktas-card-badge,
  body .tktas-community-events-grid .tktas-card-badge,
  body .tktas-dg-panel .tktas-card-badge,
  body .tktas-places-grid .tktas-badge,
  body .tktas-places-grid .tktas-culture-tag {
    font-size: 8px !important;
    padding: 2px 5px !important;
    max-width: calc(100% - 8px) !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    line-height: 1 !important;
  }
}

/* Community events should use the same shell as event cards; only image-fit differs. */
body .tktas-community-event,
body .tktas-community-events-grid .tktas-event-card,
body .tktas-community-events-grid .tktas-community-event-card {
  background: #fff !important;
  border: 1px solid var(--tktas-card-border) !important;
  border-radius: var(--tktas-card-radius) !important;
  box-shadow: none !important;
}

body .tktas-community-event > .tktas-card-link,
body .tktas-community-events-grid .tktas-event-card > .tktas-card-link,
body .tktas-community-events-grid .tktas-community-event-card > .tktas-card-link {
  display: grid !important;
  grid-template-columns: 124px minmax(0, 1fr) !important;
  min-height: 132px !important;
}


/* Community events use poster/flyer treatment. School-page linked community events should show the full flyer. */
body .tktas-community-events-grid .tktas-community-event .tktas-card-image img,
body .tktas-community-events-grid .tktas-event-card.tktas-community-event .tktas-card-image img {
  padding: 0 !important;
  object-fit: cover !important;
  object-position: center !important;
}

body #tktas-linked-events-grid .tktas-community-event .tktas-card-image img,
body #tktas-linked-events-grid .tktas-event-card.tktas-community-event .tktas-card-image img {
  padding: 10px !important;
  object-fit: contain !important;
  object-position: center !important;
}

body .tktas-community-events-grid .tktas-community-event .tktas-card-image,
body .tktas-community-events-grid .tktas-event-card.tktas-community-event .tktas-card-image,
body #tktas-linked-events-grid .tktas-community-event .tktas-card-image,
body #tktas-linked-events-grid .tktas-event-card.tktas-community-event .tktas-card-image {
  background: #fff !important;
}
