.a24cr-filter-shortcut,
.a24cr-filter-control,
.a24cr-grid-root,
.a24cr-grid-root * {
  box-sizing: border-box;
}

/* Samostatné filtrační tlačítko – lze vložit kamkoliv do Enfoldu. */
/* Obal shortcodu zabírá celou šířku sloupce a řídí zarovnání tlačítka. */
.a24cr-filter-shortcut {
  display: flex !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

.a24cr-filter-align-left {
  justify-content: flex-start !important;
}

.a24cr-filter-align-center {
  justify-content: center !important;
}

.a24cr-filter-align-right {
  justify-content: flex-end !important;
}

.a24cr-filter-control {
  appearance: none !important;
  -webkit-appearance: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: var(--a24cr-filter-width, 150px) !important;
  max-width: 100% !important;
  min-height: var(--a24cr-filter-height, 42px) !important;
  padding: 9px 14px !important;
  margin: 0 !important;
  border-style: solid !important;
  border-width: var(--a24cr-filter-border-width, 0) !important;
  border-color: var(--a24cr-filter-border, #c6a564) !important;
  border-radius: var(--a24cr-filter-radius, 2px) !important;
  background: var(--a24cr-filter-bg, #c6a564) !important;
  color: var(--a24cr-filter-text, #111111) !important;
  font-family: var(--a24cr-filter-font, inherit) !important;
  font-size: var(--a24cr-filter-size, 16px) !important;
  font-weight: var(--a24cr-filter-weight, 400) !important;
  font-style: normal !important;
  line-height: 1.2 !important;
  letter-spacing: normal !important;
  text-align: center !important;
  text-decoration: none !important;
  text-transform: none !important;
  box-shadow: none !important;
  cursor: pointer !important;
  transition: background-color .18s ease, color .18s ease, border-color .18s ease !important;
}

.a24cr-filter-control:hover,
.a24cr-filter-control:focus-visible,
.a24cr-filter-control.is-active {
  background: var(--a24cr-filter-hover-bg, #d5b875) !important;
  color: var(--a24cr-filter-hover-text, #111111) !important;
}

.a24cr-filter-control:focus-visible {
  outline: 2px solid currentColor !important;
  outline-offset: 3px !important;
}

/* Výpis koncertů – bez vlastního nadpisu, pozadí a vnějšího odsazení. */
.a24cr-grid-root {
  width: 100%;
  margin: 0;
  padding: 0;
  background: transparent;
  scroll-margin-top: 110px;
  outline: none;
}

.a24cr-status {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.a24cr-grid {
  display: grid !important;
  overflow: hidden !important;
  grid-template-columns: repeat(var(--a24cr-columns, 2), minmax(0, 1fr)) !important;
  column-gap: var(--a24cr-column-gap, 26px) !important;
  row-gap: var(--a24cr-row-gap, 0) !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

.a24cr-card {
  position: relative !important;
  display: flex;
  min-width: 0;
  flex-direction: column;
  padding: var(--a24cr-card-pad-y, 28px) var(--a24cr-card-pad-x, 8px) !important;
  margin: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

/*
 * Skutečná zlatá mřížka podle návrhu: vodorovná linka přes celý řádek
 * a svislá linka přesně uprostřed mezery mezi viditelnými sloupci.
 * Třídu a24cr-column-start dopočítává JS i po filtrování, takže mřížka
 * zůstane správná při libovolném počtu zobrazených koncertů.
 */
.a24cr-card::after {
  content: "" !important;
  position: absolute !important;
  z-index: 2 !important;
  left: calc(var(--a24cr-column-gap, 26px) / -2) !important;
  right: calc(var(--a24cr-column-gap, 26px) / -2) !important;
  bottom: 0 !important;
  height: var(--a24cr-divider-width, 1px) !important;
  background: var(--a24cr-divider, #c6a564) !important;
  pointer-events: none !important;
}

.a24cr-card:not(.a24cr-column-start)::before {
  content: "" !important;
  position: absolute !important;
  z-index: 2 !important;
  top: 0 !important;
  bottom: 0 !important;
  left: calc(var(--a24cr-column-gap, 26px) / -2) !important;
  width: var(--a24cr-divider-width, 1px) !important;
  background: var(--a24cr-divider, #c6a564) !important;
  pointer-events: none !important;
}

.a24cr-card[hidden],
.a24cr-grid[hidden],
.a24cr-private[hidden] {
  display: none !important;
}

.a24cr-card-image {
  display: block;
  overflow: hidden;
  width: 100%;
  aspect-ratio: var(--a24cr-image-ratio, 1.55) / 1;
  margin: 0;
  background: rgba(255, 255, 255, .04);
}

.a24cr-card-image img,
.a24cr-card-placeholder {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  object-fit: cover !important;
}

.a24cr-card-placeholder {
  background:
    linear-gradient(135deg, rgba(198, 165, 100, .18), transparent 60%),
    linear-gradient(45deg, rgba(255, 255, 255, .04), rgba(255, 255, 255, .01));
}

.a24cr-card-body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  align-items: flex-start;
  min-width: 0;
  padding: 20px 0 0 !important;
  margin: 0 !important;
}

#top .a24cr-grid-root .a24cr-card-title,
.a24cr-grid-root .a24cr-card-title {
  width: 100%;
  margin: 0 0 8px !important;
  padding: 0 !important;
  color: var(--a24cr-title-color, #c6a564) !important;
  -webkit-text-fill-color: var(--a24cr-title-color, #c6a564) !important;
  opacity: 1 !important;
  font-family: var(--a24cr-title-font, inherit) !important;
  font-size: var(--a24cr-title-size, 27px) !important;
  font-weight: var(--a24cr-title-weight, 600) !important;
  font-style: normal !important;
  line-height: var(--a24cr-title-line, 1.23) !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}

#top .a24cr-grid-root .a24cr-card-line,
.a24cr-grid-root .a24cr-card-line {
  width: 100%;
  margin: 0 0 20px !important;
  padding: 0 !important;
  color: var(--a24cr-meta-color, #f2eee5) !important;
  -webkit-text-fill-color: var(--a24cr-meta-color, #f2eee5) !important;
  opacity: 1 !important;
  font-family: var(--a24cr-meta-font, inherit) !important;
  font-size: var(--a24cr-meta-size, 14px) !important;
  font-weight: var(--a24cr-meta-weight, 400) !important;
  font-style: normal !important;
  line-height: 1.5 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}

#top .a24cr-grid-root .a24cr-card-button,
.a24cr-grid-root .a24cr-card-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: var(--a24cr-card-btn-width, auto) !important;
  max-width: 100% !important;
  min-height: 40px !important;
  padding: 9px 16px !important;
  margin: auto 0 0 !important;
  border-style: solid !important;
  border-width: var(--a24cr-card-btn-border-width, 1px) !important;
  border-color: var(--a24cr-card-btn-border, #c6a564) !important;
  border-radius: var(--a24cr-card-btn-radius, 2px) !important;
  background: var(--a24cr-card-btn-bg, transparent) !important;
  color: var(--a24cr-card-btn-text, #ffffff) !important;
  -webkit-text-fill-color: var(--a24cr-card-btn-text, #ffffff) !important;
  opacity: 1 !important;
  font-family: var(--a24cr-card-btn-font, inherit) !important;
  font-size: var(--a24cr-card-btn-size, 14px) !important;
  font-weight: var(--a24cr-card-btn-weight, 400) !important;
  font-style: normal !important;
  line-height: 1.2 !important;
  letter-spacing: normal !important;
  text-align: center !important;
  text-decoration: none !important;
  text-transform: none !important;
  box-shadow: none !important;
  transition: background-color .18s ease, color .18s ease !important;
}

.a24cr-grid-root .a24cr-card-button:hover,
.a24cr-grid-root .a24cr-card-button:focus-visible {
  background: var(--a24cr-card-btn-hover-bg, #c6a564) !important;
  color: var(--a24cr-card-btn-hover-text, #111111) !important;
}

.a24cr-private {
  width: 100%;
  padding: var(--a24cr-card-pad-y, 28px) var(--a24cr-card-pad-x, 8px) !important;
  border: 0 !important;
}

.a24cr-private-content {
  width: 100%;
}

.a24cr-private-content > :first-child {
  margin-top: 0 !important;
}

/* Privátní seznam: malé kompaktní bílé odrážky bez Enfold odsazení. */
#top .a24cr-grid-root .a24cr-private-content ul,
.a24cr-grid-root .a24cr-private-content ul {
  margin: 16px 0 24px !important;
  padding: 0 0 0 34px !important;
  list-style: disc outside !important;
}

#top .a24cr-grid-root .a24cr-private-content ul li,
.a24cr-grid-root .a24cr-private-content ul li {
  margin: 0 0 2px !important;
  padding: 0 !important;
  background: none !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  line-height: 1.25 !important;
  list-style: disc outside !important;
}

#top .a24cr-grid-root .a24cr-private-content ul li:last-child,
.a24cr-grid-root .a24cr-private-content ul li:last-child {
  margin-bottom: 0 !important;
}

#top .a24cr-grid-root .a24cr-private-content ul li::marker,
.a24cr-grid-root .a24cr-private-content ul li::marker {
  color: #ffffff !important;
  font-size: .7em;
}

@media (max-width: 989px) {
  .a24cr-grid {
    grid-template-columns: repeat(var(--a24cr-tablet-columns, 2), minmax(0, 1fr)) !important;
  }
}

@media (max-width: 680px) {
  .a24cr-grid {
    grid-template-columns: repeat(var(--a24cr-mobile-columns, 1), minmax(0, 1fr)) !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .a24cr-filter-control,
  .a24cr-grid-root * {
    transition: none !important;
  }
}

/*
 * v1.1.9 – pevná konstrukce a přesné svislé vystředění odrážek. Každé <li> je flex řádek:
 * bílá tečka je samostatný prvek vlevo a je svisle vystředěná vedle textu.
 * Tím se přebijí pseudo-odrážky i vertikální odsazení Enfoldu.
 */
body #top #wrap_all .a24cr-grid-root .a24cr-private .a24cr-private-content ul,
body #top .a24cr-grid-root .a24cr-private .a24cr-private-content ul,
body .a24cr-grid-root .a24cr-private .a24cr-private-content ul {
  display: block !important;
  margin: 12px 0 20px !important;
  padding: 0 !important;
  list-style: none !important;
  list-style-type: none !important;
}

body #top #wrap_all .a24cr-grid-root .a24cr-private .a24cr-private-content ul > li,
body #top .a24cr-grid-root .a24cr-private .a24cr-private-content ul > li,
body .a24cr-grid-root .a24cr-private .a24cr-private-content ul > li {
  position: relative !important;
  display: flex !important;
  flex-flow: row nowrap !important;
  align-items: center !important;
  gap: 11px !important;
  min-width: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: none !important;
  background-image: none !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  line-height: 1.18 !important;
  list-style: none !important;
  list-style-type: none !important;
}

body #top #wrap_all .a24cr-grid-root .a24cr-private .a24cr-private-content ul > li + li,
body #top .a24cr-grid-root .a24cr-private .a24cr-private-content ul > li + li,
body .a24cr-grid-root .a24cr-private .a24cr-private-content ul > li + li {
  margin-top: 5px !important;
}

/* Zrušení nativní marker odrážky. */
body #top #wrap_all .a24cr-grid-root .a24cr-private .a24cr-private-content ul > li::marker,
body #top .a24cr-grid-root .a24cr-private .a24cr-private-content ul > li::marker,
body .a24cr-grid-root .a24cr-private .a24cr-private-content ul > li::marker {
  content: "" !important;
  color: transparent !important;
  font-size: 0 !important;
}

/* Malá bílá kruhová odrážka pevně vlevo vedle textu. */
body #top #wrap_all .a24cr-grid-root .a24cr-private .a24cr-private-content ul > li::before,
body #top .a24cr-grid-root .a24cr-private .a24cr-private-content ul > li::before,
body .a24cr-grid-root .a24cr-private .a24cr-private-content ul > li::before {
  content: "" !important;
  position: static !important;
  display: block !important;
  flex: 0 0 4px !important;
  width: 4px !important;
  min-width: 4px !important;
  max-width: 4px !important;
  height: 4px !important;
  min-height: 4px !important;
  max-height: 4px !important;
  margin: 0 !important;
  align-self: center !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 50% !important;
  background: #ffffff !important;
  background-image: none !important;
  box-shadow: none !important;
  color: #ffffff !important;
  opacity: 1 !important;
  transform: none !important;
}

body #top #wrap_all .a24cr-grid-root .a24cr-private .a24cr-private-content ul > li::after,
body #top .a24cr-grid-root .a24cr-private .a24cr-private-content ul > li::after,
body .a24cr-grid-root .a24cr-private .a24cr-private-content ul > li::after {
  content: none !important;
  display: none !important;
}

/* Enfold/WP editor může dovnitř <li> vložit odstavec. Ten nesmí přidat mezery. */
body #top #wrap_all .a24cr-grid-root .a24cr-private .a24cr-private-content ul > li > p,
body #top .a24cr-grid-root .a24cr-private .a24cr-private-content ul > li > p,
body .a24cr-grid-root .a24cr-private .a24cr-private-content ul > li > p {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: inherit !important;
}

/* v1.2.0 – tlačítko All concerts se zobrazí pouze po aktivaci filtru. */
.a24cr-all-reset[hidden] {
  display: none !important;
}

.a24cr-all-reset {
  display: flex !important;
  width: 100% !important;
  margin: var(--a24cr-all-btn-margin-bottom, 24px) 0 0 !important;
  padding: 0 !important;
}

.a24cr-all-reset-align-left { justify-content: flex-start !important; }
.a24cr-all-reset-align-center { justify-content: center !important; }
.a24cr-all-reset-align-right { justify-content: flex-end !important; }

#top .a24cr-grid-root .a24cr-all-reset-button,
.a24cr-grid-root .a24cr-all-reset-button {
  appearance: none !important;
  -webkit-appearance: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: var(--a24cr-all-btn-width, 150px) !important;
  max-width: 100% !important;
  min-height: var(--a24cr-all-btn-height, 42px) !important;
  padding: 9px 14px !important;
  margin: 0 !important;
  border-style: solid !important;
  border-width: var(--a24cr-all-btn-border-width, 0) !important;
  border-color: var(--a24cr-all-btn-border, #c6a564) !important;
  border-radius: var(--a24cr-all-btn-radius, 2px) !important;
  background: var(--a24cr-all-btn-bg, #c6a564) !important;
  color: var(--a24cr-all-btn-text, #111111) !important;
  -webkit-text-fill-color: var(--a24cr-all-btn-text, #111111) !important;
  font-family: var(--a24cr-all-btn-font, inherit) !important;
  font-size: var(--a24cr-all-btn-size, 16px) !important;
  font-weight: var(--a24cr-all-btn-weight, 400) !important;
  font-style: normal !important;
  line-height: 1.2 !important;
  text-align: center !important;
  text-decoration: none !important;
  text-transform: none !important;
  box-shadow: none !important;
  cursor: pointer !important;
  transition: background-color .18s ease, color .18s ease, border-color .18s ease !important;
}

#top .a24cr-grid-root .a24cr-all-reset-button:hover,
#top .a24cr-grid-root .a24cr-all-reset-button:focus-visible,
.a24cr-grid-root .a24cr-all-reset-button:hover,
.a24cr-grid-root .a24cr-all-reset-button:focus-visible {
  background: var(--a24cr-all-btn-hover-bg, #d5b875) !important;
  color: var(--a24cr-all-btn-hover-text, #111111) !important;
  -webkit-text-fill-color: var(--a24cr-all-btn-hover-text, #111111) !important;
}

.a24cr-grid-root .a24cr-all-reset-button:focus-visible {
  outline: 2px solid currentColor !important;
  outline-offset: 3px !important;
}


/* v1.3.4 – Repertoire only: remove the Enfold socket separator line. */
body.a24cr-repertoire-page #socket,
body.a24cr-repertoire-page #socket.socket_color,
body.a24cr-repertoire-page .socket_color {
  border-top: 0 !important;
  border-top-width: 0 !important;
  box-shadow: none !important;
}


/* v1.3.5 – Repertoire only: remove the separator on the actual legal/privacy strip.
   On this page the line is rendered by an Enfold content section/container, not only #socket. */
body.a24cr-repertoire-page .a24cr-legal-strip,
body.a24cr-repertoire-page .a24cr-legal-strip-wrap,
body.a24cr-repertoire-page .a24cr-legal-strip::before,
body.a24cr-repertoire-page .a24cr-legal-strip::after {
  border-top: 0 !important;
  border-top-width: 0 !important;
  border-color: transparent !important;
  box-shadow: none !important;
  outline: 0 !important;
}
