.bumi-event-display {
  --bumi-event-primary: #5aaa7a;
  --bumi-event-accent: #f0cdbf;
  --bumi-event-dark: #1c2f3f;
  --bumi-event-soft: #f7f5ef;
  --bumi-event-cols: 3;
  --bumi-event-cols-tablet: 2;
  --bumi-event-cols-mobile: 1;
  color: var(--bumi-event-dark);
  font-family: inherit;
}

.bumi-event-display *,
.bumi-event-display *::before,
.bumi-event-display *::after { box-sizing: border-box; }

.bumi-event-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 32px;
  padding: 44px;
  margin-bottom: 26px;
  border-radius: 30px;
  background:
    radial-gradient(circle at 88% 15%, color-mix(in srgb, var(--bumi-event-accent) 48%, transparent), transparent 35%),
    linear-gradient(135deg, #fff 0%, var(--bumi-event-soft) 100%);
  border: 1px solid color-mix(in srgb, var(--bumi-event-dark) 9%, transparent);
  box-shadow: 0 20px 55px rgba(28, 47, 63, .08);
}

.bumi-event-heading-copy { max-width: 820px; }
.bumi-event-kicker,
.bumi-section-heading > span {
  display: inline-block;
  margin: 0 0 12px;
  color: var(--bumi-event-primary);
  font-size: 13px;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: 1.3px;
  text-transform: uppercase;
}

.bumi-event-header h2,
.bumi-section-heading h2 {
  margin: 0 0 16px;
  color: var(--bumi-event-dark);
  font-size: clamp(32px, 4vw, 54px);
  line-height: 1.08;
  font-weight: 800;
  letter-spacing: -.025em;
}

.bumi-event-header p {
  margin: 0;
  max-width: 760px;
  color: color-mix(in srgb, var(--bumi-event-dark) 72%, white);
  font-size: 17px;
  line-height: 1.65;
}

.bumi-event-logo {
  display: block;
  width: min(220px, 24vw);
  max-height: 140px;
  object-fit: contain;
}

.bumi-event-meta-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 22px;
}
.bumi-event-meta-pills span {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 8px 15px;
  border-radius: 999px;
  background: #fff;
  border: 1px solid color-mix(in srgb, var(--bumi-event-dark) 10%, transparent);
  color: var(--bumi-event-dark);
  font-size: 13px;
  font-weight: 750;
}

.bumi-event-tools {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  padding: 15px;
  margin-bottom: 24px;
  border-radius: 22px;
  background: #fff;
  border: 1px solid color-mix(in srgb, var(--bumi-event-dark) 9%, transparent);
  box-shadow: 0 12px 35px rgba(28, 47, 63, .06);
}

.bumi-event-search { flex: 1 1 260px; }
.bumi-event-search input,
.bumi-event-select-filter {
  width: 100%;
  min-height: 44px;
  padding: 10px 14px;
  color: var(--bumi-event-dark);
  background: var(--bumi-event-soft);
  border: 1px solid color-mix(in srgb, var(--bumi-event-dark) 12%, transparent);
  border-radius: 14px;
  font: inherit;
  font-size: 14px;
  outline: none;
}
.bumi-event-search input:focus,
.bumi-event-select-filter:focus {
  border-color: var(--bumi-event-primary);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--bumi-event-primary) 18%, transparent);
}
.bumi-event-select-filter { flex: 0 1 210px; }

.bumi-event-filter-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  flex: 1 1 100%;
}
.bumi-event-filter-row button {
  appearance: none;
  min-height: 38px;
  padding: 8px 14px;
  border: 1px solid color-mix(in srgb, var(--bumi-event-dark) 12%, transparent);
  border-radius: 999px;
  background: #fff;
  color: var(--bumi-event-dark);
  font: inherit;
  font-size: 13px;
  font-weight: 750;
  cursor: pointer;
  transition: transform .18s ease, background .18s ease, color .18s ease, border-color .18s ease;
}
.bumi-event-filter-row button:hover { transform: translateY(-1px); border-color: var(--bumi-event-primary); }
.bumi-event-filter-row button.is-active { background: var(--bumi-event-dark); border-color: var(--bumi-event-dark); color: #fff; }

.bumi-event-results,
.bumi-artist-grid,
.bumi-stage-grid {
  display: grid;
  grid-template-columns: repeat(var(--bumi-event-cols), minmax(0, 1fr));
  gap: 24px;
}

.bumi-program-card {
  position: relative;
  min-width: 0;
  overflow: hidden;
  border-radius: 24px;
  background: #fff;
  border: 1px solid color-mix(in srgb, var(--bumi-event-dark) 9%, transparent);
  box-shadow: 0 18px 48px rgba(28, 47, 63, .08);
  transition: transform .22s ease, box-shadow .22s ease;
}
.bumi-program-card::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 5px;
  background: var(--bumi-card-color, var(--bumi-event-primary));
  z-index: 2;
}
.bumi-program-card:hover { transform: translateY(-4px); box-shadow: 0 24px 58px rgba(28, 47, 63, .13); }
.bumi-program-card[hidden] { display: none !important; }
.bumi-program-card.is-featured { border-color: color-mix(in srgb, var(--bumi-card-color) 35%, transparent); }

.bumi-program-image {
  display: block;
  width: 100%;
  aspect-ratio: var(--bumi-program-image-ratio, 4 / 3);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}
.bumi-program-content { padding: 23px 23px 24px 27px; }
.bumi-program-topline { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; min-height: 25px; margin-bottom: 12px; }
.bumi-featured-badge,
.bumi-program-type,
.bumi-artist-role {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  min-height: 27px;
  padding: 5px 10px;
  border-radius: 999px;
  font-size: 11px;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: .45px;
  text-transform: uppercase;
}
.bumi-featured-badge { color: #fff; background: var(--bumi-card-color, var(--bumi-event-primary)); }
.bumi-program-type { color: var(--bumi-card-color, var(--bumi-event-primary)); background: color-mix(in srgb, var(--bumi-card-color, var(--bumi-event-primary)) 12%, white); }

.bumi-program-card h3,
.bumi-artist-card h3,
.bumi-stage-card h3 {
  margin: 0;
  color: var(--bumi-event-dark);
  font-size: 23px;
  line-height: 1.18;
  font-weight: 800;
  letter-spacing: -.01em;
}
.bumi-program-card h3 a,
.bumi-artist-card h3 a { color: inherit; text-decoration: none; }
.bumi-program-card h3 a:hover,
.bumi-artist-card h3 a:hover { color: var(--bumi-event-primary); }

.bumi-program-artists {
  margin: 8px 0 0;
  color: var(--bumi-card-color, var(--bumi-event-primary));
  font-size: 14px;
  line-height: 1.4;
  font-weight: 750;
}
.bumi-program-description {
  margin: 14px 0 0;
  color: color-mix(in srgb, var(--bumi-event-dark) 68%, white);
  font-size: 14px;
  line-height: 1.58;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.bumi-program-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 19px;
  padding-top: 16px;
  border-top: 1px solid color-mix(in srgb, var(--bumi-event-dark) 9%, transparent);
}
.bumi-program-meta span {
  display: inline-flex;
  align-items: center;
  min-height: 29px;
  padding: 5px 9px;
  border-radius: 9px;
  background: var(--bumi-event-soft);
  color: color-mix(in srgb, var(--bumi-event-dark) 80%, white);
  font-size: 12px;
  line-height: 1.25;
  font-weight: 700;
}
.bumi-meta-stage { border-left: 3px solid var(--bumi-card-color, var(--bumi-event-primary)); }

.bumi-layout-timeline .bumi-event-results { display: flex; flex-direction: column; gap: 16px; }
.bumi-layout-timeline .bumi-program-card { display: grid; grid-template-columns: minmax(220px, 32%) 1fr; }
.bumi-layout-timeline .bumi-program-image { height: 100%; aspect-ratio: auto; min-height: 230px; }
.bumi-layout-compact .bumi-event-results { grid-template-columns: repeat(var(--bumi-event-cols), minmax(0, 1fr)); gap: 14px; }
.bumi-layout-compact .bumi-program-image,
.bumi-layout-compact .bumi-program-description { display: none; }
.bumi-layout-compact .bumi-program-content { padding: 18px 18px 18px 22px; }
.bumi-layout-compact .bumi-program-card h3 { font-size: 18px; }

.bumi-event-empty,
.bumi-event-no-results {
  grid-column: 1 / -1;
  padding: 34px;
  border: 1px dashed color-mix(in srgb, var(--bumi-event-dark) 20%, transparent);
  border-radius: 20px;
  background: var(--bumi-event-soft);
  color: color-mix(in srgb, var(--bumi-event-dark) 70%, white);
  text-align: center;
  font-size: 16px;
}

.bumi-section-heading { max-width: 820px; margin: 0 auto 34px; text-align: center; }
.bumi-section-heading h2 { font-size: clamp(30px, 3.5vw, 46px); }

.bumi-artist-card,
.bumi-stage-card {
  overflow: hidden;
  border-radius: 24px;
  background: #fff;
  border: 1px solid color-mix(in srgb, var(--bumi-event-dark) 9%, transparent);
  box-shadow: 0 18px 45px rgba(28, 47, 63, .08);
}
.bumi-artist-image,
.bumi-stage-image {
  width: 100%;
  aspect-ratio: 4 / 3;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}
.bumi-artist-content,
.bumi-stage-content { padding: 22px; }
.bumi-artist-role { color: var(--bumi-event-primary); background: color-mix(in srgb, var(--bumi-event-primary) 12%, white); margin-bottom: 12px; }
.bumi-artist-content p,
.bumi-stage-content p { margin: 12px 0 0; color: color-mix(in srgb, var(--bumi-event-dark) 68%, white); font-size: 14px; line-height: 1.6; }
.bumi-stage-card { position: relative; }
.bumi-stage-card::after { content: ""; position: absolute; inset: 0 0 auto; height: 5px; background: var(--bumi-stage-color, var(--bumi-event-primary)); }
.bumi-stage-dot { display: block; width: 30px; height: 6px; margin-bottom: 14px; border-radius: 99px; background: var(--bumi-stage-color, var(--bumi-event-primary)); }
.bumi-stage-location { font-weight: 750; color: var(--bumi-stage-color, var(--bumi-event-primary)) !important; }

@media (max-width: 1024px) {
  .bumi-event-results,
  .bumi-artist-grid,
  .bumi-stage-grid { grid-template-columns: repeat(var(--bumi-event-cols-tablet), minmax(0, 1fr)); }
  .bumi-event-header { padding: 34px; }
}

@media (max-width: 767px) {
  .bumi-event-header { flex-direction: column; align-items: flex-start; padding: 27px 22px; border-radius: 23px; }
  .bumi-event-logo { width: min(200px, 58vw); }
  .bumi-event-header h2 { font-size: 34px; }
  .bumi-event-tools { align-items: stretch; }
  .bumi-event-select-filter { flex-basis: 100%; }
  .bumi-event-results,
  .bumi-artist-grid,
  .bumi-stage-grid { grid-template-columns: repeat(var(--bumi-event-cols-mobile), minmax(0, 1fr)); gap: 16px; }
  .bumi-layout-timeline .bumi-program-card { grid-template-columns: 1fr; }
  .bumi-layout-timeline .bumi-program-image { min-height: auto; aspect-ratio: 16 / 10; }
}

@media (prefers-reduced-motion: reduce) {
  .bumi-program-card,
  .bumi-event-filter-row button { transition: none; }
}

/* v2.0.1 related-program queries and multi-event cards */
.bumi-program-event {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  min-height: 27px;
  padding: 5px 10px;
  border-radius: 999px;
  background: var(--bumi-event-soft);
  color: color-mix(in srgb, var(--bumi-event-dark) 82%, white);
  font-size: 11px;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: .3px;
  text-decoration: none;
}
.bumi-program-event:hover { color: var(--bumi-event-primary); }
.bumi-collection-header { grid-template-columns: 1fr; }

/* v2.2.0 verifiable certificate card (also usable inside Elementor) */
.bumi-verify-card{width:min(760px,100%);margin-inline:auto;background:#fff;border-radius:26px;padding:42px;box-sizing:border-box;box-shadow:0 18px 60px rgba(28,44,58,.12);border:1px solid rgba(18,38,11,.08);color:#1c2c3a}
.bumi-verify-badge{display:inline-block;padding:8px 13px;border-radius:999px;background:#eef4ea;color:#31582d;font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.06em}
.bumi-verify-badge.revoked{background:#fae8e8;color:#9f2424}.bumi-verify-card h1{font-size:clamp(28px,5vw,38px);margin:18px 0 8px}.bumi-verify-card h2{font-size:clamp(22px,4vw,28px);margin:0 0 24px;color:#12260b}
.bumi-verify-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.bumi-verify-item{background:#f7f5ef;border-radius:16px;padding:16px}.bumi-verify-item span{display:block;color:#6d756e;font-size:12px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}.bumi-verify-item strong{font-size:16px}
.bumi-verify-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.bumi-verify-btn{display:inline-block;background:#1c2c3a;color:#fff!important;text-decoration:none;padding:12px 18px;border-radius:999px;font-weight:700}.bumi-verify-foot{margin-top:24px;padding-top:18px;border-top:1px solid #ecefe9;font-size:13px;color:#6b756c}
@media(max-width:600px){.bumi-verify-card{padding:26px 20px;border-radius:20px}.bumi-verify-grid{grid-template-columns:1fr}}

/* v2.7.1: isolate BUMI interactive controls from theme/Elementor global accent borders. */
.bumi-event-display .bumi-event-filter-row button,
.bumi-event-display .bumi-event-search input,
.bumi-event-display .bumi-event-select-filter{box-shadow:none}
.bumi-event-display .bumi-event-filter-row button:not(.is-active){background:#fff;color:var(--bumi-event-dark);border-color:color-mix(in srgb,var(--bumi-event-dark) 12%,transparent)}
.bumi-event-display .bumi-event-filter-row button.is-active{background:var(--bumi-event-dark)!important;color:#fff!important;border-color:var(--bumi-event-dark)!important}
