/*
Theme Name: Kadence Child - Latin Dance Radar
Theme URI: https://latindanceradar.com
Description: Child theme for latindanceradar.com. Carries the Option E "Graphite" skin (locked design, mockup file 4) and the EventPrime list-view template override with day-band headers. Survives Kadence and EventPrime updates.
Author: Latin Dance Radar
Template: kadence
Version: 1.17.2
*/

/* ============================================================
   PART 1 - E graphite base skin.
   Identical to build/2026-07-21-eventprime-list-view-card-css-option-e-graphite-kadence.css
   (the audited version). Kept in full: it styles any EventPrime
   stock markup that still renders (other pages, fallbacks), so a
   broken or bypassed override degrades to a styled stock card,
   never to an unstyled page.
   All color pairs WCAG 2.1 AA verified in the mockup-decisions doc.
   ============================================================ */

body {
  background: #fafafa;
}

body:has(.emagic) .content-bg,
body:has(.emagic) .content-container {
  background: #fafafa;
}

.ep-event-list-item,
.ep-event-list-item.ep-border {
  background: #fff;
  border: 1px solid #ebedf0 !important;
  border-radius: 13px !important;
  overflow: hidden;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
    Helvetica, Arial, sans-serif;
}
.ep-event-list-item.ep-mb-4 {
  margin-bottom: 10px !important;
}
.ep-events-container .ep-event-list-item.ep-border {
  border-color: #ebedf0 !important;
}

.ep-event-list-item .ep-border-right,
.ep-event-list-item .ep-border-left {
  border-right: 0 !important;
  border-left: 0 !important;
}

.ep-event-list-item .ep-box-row {
  flex-wrap: nowrap;
  align-items: stretch;
}

.ep-event-list-item .ep-box-col-3:not(.ep-box-list-right-col) {
  flex: 0 0 78px;
  max-width: 78px;
  padding: 10px 0 10px 10px;
}
.ep-event-list-item .ep-img-link {
  display: block;
  margin: 10px 0 10px 10px !important;
}
.ep-event-list-item .ep-img-link,
.ep-event-list-item .ep-img-link img,
.ep-event-list-item .ep-list-img-fluid,
.ep-event-list-item .em-no-image {
  min-height: 0 !important;
  max-height: 82px !important;
  width: 64px !important;
  height: 82px !important;
  object-fit: cover;
  border-radius: 8px !important;
  display: block;
}

.ep-event-list-item .ep-list-icon-group {
  display: none;
}

.ep-event-list-item .ep-box-col-6 {
  flex: 1 1 auto;
  max-width: none;
  min-width: 0;
  padding: 10px 12px !important;
}

.ep-event-list-item .ep-text-warning {
  color: #d81f3d !important;
  font-size: 10px;
  letter-spacing: 0.4px;
}

.ep-event-list-item .ep-box-list-title a,
.ep-event-list-item .ep-box-list-title a.ep-fw-bold {
  color: #191b1e !important;
  font-weight: 800 !important;
  font-size: 15px !important;
  line-height: 1.15;
  text-decoration: none;
}

.ep-event-list-item .ep-text-muted {
  color: #63686f !important;
  font-size: 11.5px !important;
  line-height: 1.5;
}

.ep-event-list-item .ep-event-list-view-action .ep-fw-bold,
.ep-event-list-item .ep-event-list-view-action .ep-text-dark {
  color: #191b1e !important;
  font-size: 11.5px !important;
}

.ep-event-list-item .ep-box-list-desc {
  display: none;
}

.ep-event-list-item .ep-box-list-right-col {
  flex: 0 0 auto;
  max-width: 112px;
  padding: 10px 10px 10px 0 !important;
  font-size: 11.5px;
  color: #191b1e;
  text-align: right;
}

.ep-event-list-item .ep-list-view-btn-area {
  display: none;
}

.ep-event-expired .ep-list-img-fluid {
  filter: grayscale(1) brightness(0.55);
}
.ep-event-expired .ep-box-list-item,
.ep-event-expired .ep-box-list-right-col {
  opacity: 0.72;
}

.ep-event-list-item .ep-event-list-view-action .ep-fw-bold > span {
  display: none;
}

@media (max-width: 767px) {
  body:has(.emagic) .content-container.site-container,
  body:has(.emagic) .entry-content-wrap {
    padding-left: 10px;
    padding-right: 10px;
  }
  .ep-events-container.ep-box-wrap {
    padding-left: 8px !important;
    padding-right: 8px !important;
  }
  .ep-events.ep-box-row.ep-event-list-rows-container {
    margin-left: -8px !important;
    margin-right: -8px !important;
  }
  .ep-event-list-rows-container > .ep-box-col-12 {
    padding-left: 8px !important;
    padding-right: 8px !important;
  }
}

@media (min-width: 1024px) {
  .ep-events-container.ep-box-wrap {
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
  }
}

.ep-event-list-item a:focus-visible,
.ep-event-list-item button:focus-visible {
  outline: 3px solid #1b5fd9;
  outline-offset: 2px;
}

/* ============================================================
   PART 2 - LDR native card + day bands.
   Styles the markup produced by this theme's EventPrime override
   (eventprime/themes/default/events/views/list.php). Values are
   lifted 1:1 from mockup file 4 (graphite headers version).
   ============================================================ */

/* Day-band header: Friday · Jul 24 · 5 events (graphite version) */
.ldr-day-band {
  display: flex;
  align-items: baseline;
  gap: 8px;
  background: #f1f2f5;
  margin: 14px 0 2px;
  padding: 8px 12px;
  border-radius: 10px;
  font-weight: 800;
  font-size: 13.5px;
  color: #191b1e;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
    Helvetica, Arial, sans-serif;
}
.ldr-day-band .ldr-day-date {
  font-size: 11px;
  color: #5d6675; /* 5.2:1 on #f1f2f5, AA-corrected value */
  font-weight: 600;
}
.ldr-day-band .ldr-day-count {
  margin-left: auto;
  font-size: 11px;
  color: #d81f3d;
  font-weight: 800;
}

/* Card: whole card is the tap target, like the mockup */
a.ldr-card {
  display: flex;
  gap: 11px;
  background: #fff;
  border: 1px solid #ebedf0;
  border-radius: 13px;
  margin: 8px 0;
  padding: 10px;
  position: relative;
  overflow: hidden;
  text-decoration: none;
  color: #191b1e;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
    Helvetica, Arial, sans-serif;
}
a.ldr-card:hover {
  border-color: #d9dce2;
}
a.ldr-card:focus-visible {
  outline: 3px solid #1b5fd9;
  outline-offset: 2px;
}

.ldr-th {
  width: 58px;
  height: 74px;
  border-radius: 8px;
  overflow: hidden;
  flex: none;
}
.ldr-th img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.ldr-th-empty {
  background: #f1f2f5;
}

.ldr-info {
  min-width: 0; /* load-bearing: lets the title truncate in flex */
  display: block;
}
.ldr-title {
  display: block;
  font-weight: 800;
  font-size: 14.5px;
  line-height: 1.15;
  margin-bottom: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ldr-meta {
  display: block;
  font-size: 11.5px;
  color: #63686f;
  line-height: 1.5;
}
.ldr-meta strong {
  color: #191b1e;
  font-weight: 700;
}
/* ------------------------------------------------------------
   Status overlay banners (cancellation system, file 4).
   Pairs computed 2026-07-21: white on red #d81f3d 5.02:1,
   white on ENDED gray #4a4e55 8.36:1, white on MOVED purple
   #6b3fd4 6.39:1. Status is never color-alone: every banner
   and badge carries its word. Stripe overlays the thumbnail
   (z-index), never underlays; pointer-events none keeps the
   whole card tappable.
   ------------------------------------------------------------ */
a.ldr-card {
  position: relative;
  overflow: hidden;
}
.ldr-ban {
  position: absolute;
  top: 14px;
  left: -42px;
  transform: rotate(-16deg);
  background: #d81f3d;
  color: #fff;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 1.7px;
  padding: 4px 46px;
  z-index: 6;
  box-shadow: 0 3px 12px rgba(0, 0, 0, 0.3);
  pointer-events: none;
  white-space: nowrap;
}
.ldr-ban-end {
  background: #4a4e55;
}
/* Canceled occurrence reads as dead, same as file 4's .cx card:
   desaturated flyer + dimmed text under the stripe. The stripe may
   cross the dimmed title; that is the mockup's design, the whole
   card is visually "off tonight". */
a.ldr-card.ldr-canceled .ldr-th img {
  filter: grayscale(1) brightness(0.55);
}
a.ldr-card.ldr-canceled .ldr-info {
  opacity: 0.72;
}
.ldr-mv {
  display: inline-block;
  background: #6b3fd4;
  color: #fff;
  font-size: 9.5px;
  font-weight: 800;
  padding: 2px 7px;
  border-radius: 5px;
  letter-spacing: 0.4px;
  margin-top: 4px;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Line 2 (lesson · parking): parking is free text from contributors;
   clamp to one line so a thorough parking explanation never bloats
   the card. Full text renders on the event detail page. */
.ldr-meta2 {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ------------------------------------------------------------
   Tonight / Weekend / Week filter layer + day strip (file 4).
   All pairs computed 2026-07-21:
   day number #3a3e46 on #f1f2f5 9.58:1, labels #5d6675 on
   #f1f2f5 5.18:1, white on red #d81f3d 5.02:1, white on
   #191b1e 17.26:1, weekend ring #d81f3d vs #f1f2f5 4.48:1 and
   vs #fafafa 4.81:1 (UI >= 3:1), empty msg #63686f on #fafafa
   5.38:1. Weekend ring is not color-alone: cells carry
   ", weekend" in aria-label and the Weekend tab is the labeled
   route. Disabled past days are exempt from contrast minimums.
   ------------------------------------------------------------ */
.ldr-controls {
  margin: 0 0 12px;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
    Helvetica, Arial, sans-serif;
}
.ldr-controls button {
  appearance: none;
  -webkit-appearance: none;
  border: 0;
  margin: 0;
  font-family: inherit;
  cursor: pointer;
}
.ldr-controls button:disabled {
  cursor: default;
}
.ldr-controls button:focus-visible,
.ldr-empty:focus-visible {
  outline: 3px solid #1b5fd9;
  outline-offset: 2px;
}
.ldr-dstrip {
  display: flex;
  align-items: center;
  gap: 4px;
}
.ldr-arr {
  flex: none;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: #f1f2f5;
  color: #3a3e46;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 800;
  padding: 0;
}
.ldr-arr:disabled {
  opacity: 0.35;
}
.ldr-dates {
  display: flex;
  gap: 6px;
  padding: 12px 0;
  flex: 1;
  min-width: 0;
}
.ldr-d {
  flex: 1;
  text-align: center;
  padding: 7px 0;
  border-radius: 11px;
  font-weight: 700;
  color: #5d6675;
  background: #f1f2f5;
  display: block;
  min-width: 0;
}
.ldr-dw {
  display: block;
  font-size: 9.5px;
}
.ldr-dn {
  display: block;
  font-size: 15px;
  margin-top: 1px;
  color: #3a3e46;
}
.ldr-d.ldr-on {
  background: #191b1e;
  color: #fff;
}
.ldr-d.ldr-on .ldr-dn {
  color: #fff;
}
.ldr-d.ldr-rg {
  outline: 2px solid #d81f3d;
  outline-offset: -2px;
}
.ldr-d.ldr-rg:focus-visible {
  outline: 3px solid #1b5fd9;
  outline-offset: 2px;
}
.ldr-d:disabled {
  opacity: 0.4;
}
.ldr-tabs {
  display: flex;
  gap: 6px;
  padding: 0 0 12px;
}
.ldr-tab {
  flex: 1;
  text-align: center;
  font-size: 13px;
  font-weight: 700;
  padding: 8px 0;
  border-radius: 10px;
  background: #f1f2f5;
  color: #5d6675;
}
.ldr-tab.ldr-on {
  background: #d81f3d;
  color: #fff;
}
.ldr-empty {
  font-size: 13px;
  color: #63686f;
  padding: 18px 4px;
  text-align: center;
  margin: 0;
}

/* ------------------------------------------------------------
   Geography layer (v1.6.0): city dropdown + Near me distance
   sort. Client-side, composes with the day tabs. Verified E
   palette; contrast pairs computed (WCAG 2.1 AA):
   city/near text #3a3e46 on #f1f2f5 = 9.58:1; near inactive
   #5d6675 on #f1f2f5 = 5.18:1; near active #fff on #191b1e =
   17.26:1; distance pill #3a3e46 on #f1f2f5 = 9.58:1;
   "Location not set" #5d6675 on #fff = 5.80:1; geo message
   #b3261e on #fff = 6.54:1. Status is worded (chip text, button
   label), never carried by color alone.
   ------------------------------------------------------------ */
.ldr-geo {
  display: flex;
  gap: 6px;
  align-items: stretch;
  padding: 0 0 12px;
}
.ldr-city {
  flex: 1;
  min-width: 0;
  font-family: inherit;
  font-size: 13px;
  font-weight: 700;
  color: #3a3e46;
  background: #f1f2f5;
  border: 0;
  border-radius: 10px;
  padding: 8px 10px;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
}
.ldr-city:focus-visible {
  outline: 3px solid #1b5fd9;
  outline-offset: 2px;
}
.ldr-near {
  flex: none;
  font-size: 13px;
  font-weight: 700;
  padding: 8px 14px;
  border-radius: 10px;
  background: #f1f2f5;
  color: #5d6675;
  white-space: nowrap;
}
.ldr-near.ldr-on {
  background: #191b1e;
  color: #fff;
}
.ldr-geo-msg {
  font-size: 12px;
  color: #b3261e;
  padding: 0 2px 10px;
  margin: -6px 0 0;
}

/* The city filter and Near me hide individual cards via the [hidden]
   attribute. The base rule a.ldr-card{display:flex} is an author rule
   that outranks the UA [hidden]{display:none}, so hiding must be made
   explicit here or filtered cards would stay visible. Covers the
   day-grouped view and the flattened Near me view alike. */
a.ldr-card[hidden] {
  display: none !important;
}
.ldr-day-group[hidden] {
  display: none !important;
}

/* Distance chip is hidden until Near me sorts the list. */
.ldr-dist {
  display: none;
}

/* v1.17.0 STATE TIER: collapsed scope line. Country and state are rarely
   changed, so they sit behind a small subdued line; the "change" toggle
   expands the Country + State selects on demand. Pairs verified: scope
   text #63686f on #fafafa = 5.38:1; toggle #191b1e on #fafafa = 17:1
   underlined (affordance not carried by color alone). */
.ldr-scope {
  display: flex;
  align-items: baseline;
  gap: 8px;
  padding: 0 2px 6px;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
  Helvetica, Arial, sans-serif;
}
.ldr-scope-txt {
  font-size: 11.5px;
  font-weight: 600;
  color: #63686f;
}
.ldr-scope-change {
  appearance: none;
  -webkit-appearance: none;
  border: 0;
  background: transparent;
  padding: 0;
  font-family: inherit;
  font-size: 11.5px;
  font-weight: 700;
  color: #191b1e;
  text-decoration: underline;
  cursor: pointer;
}
.ldr-scope-change:focus-visible {
  outline: 3px solid #1b5fd9;
  outline-offset: 2px;
}
.ldr-geo-broad[hidden] {
  display: none !important;
}

/* REQ 4 (v1.16.0): radius chip row, shown only while Near me sorts.
   Same verified pairs as the near button: inactive #5d6675 on #f1f2f5 =
   5.2:1, active white on #191b1e = 17.3:1 (WCAG 2.1 AA); pressed state
   carried by style AND aria-pressed, never color alone. */
.ldr-radius {
  flex-wrap: wrap;
}
.ldr-rad {
  flex: none;
  font-size: 12px;
  font-weight: 700;
  padding: 6px 11px;
  border-radius: 999px;
  background: #f1f2f5;
  color: #5d6675;
  white-space: nowrap;
}
.ldr-rad.ldr-on {
  background: #191b1e;
  color: #fff;
}
.ldr-radius[hidden] {
  display: none !important;
}

/* REQ 6 (v1.15.0): type chips (Socials / Festivals & Congresses).
   Reuses the verified tab pairs: inactive #5d6675 on #f1f2f5 = 5.2:1,
   active white on #191b1e = 17.3:1 (WCAG 2.1 AA); state carried by the
   pressed style AND aria-pressed, never color alone. The Festival chip
   doubles as festivals-only mode (day window lifted while active). */
/* v1.16.1 (Kaine's user test): type chips must read as a DIFFERENT control
   family than the day/time tabs. Tabs stay soft gray blocks with the red
   active pill; type chips become outlined white PILLS with a graphite
   active. Same palette, no new colors: text #5d6675 on #fff = 5.8:1
   (verified pair), active white on #191b1e = 17.3:1; the border is
   decorative, state is carried by fill + aria-pressed. */
.ldr-types {
  display: flex;
  gap: 6px;
  padding: 0 0 12px;
}
.ldr-type {
  flex: 1;
  text-align: center;
  font-size: 13px;
  font-weight: 700;
  padding: 7px 0;
  border-radius: 999px;
  background: #fff;
  border: 1px solid #d5d8dd;
  color: #5d6675;
}
.ldr-type.ldr-on {
  background: #191b1e;
  border-color: #191b1e;
  color: #fff;
}

/* REQ 3 (v1.13.0): per-card inline date. Hidden in the day-grouped view
   (the band header carries the date there); shown in any flattened mode,
   where the band headers are hidden and the date would otherwise vanish.
   Same verified pair as the distance chip: #3a3e46 on #f1f2f5 = 9.58:1
   (WCAG 2.1 AA); no new colors introduced. */
.ldr-date {
  display: none;
}
.ep-box-col-12.ldr-nearby .ldr-card .ldr-date {
  display: inline-block;
  margin: 0 0 3px 4px;
  font-size: 11px;
  font-weight: 700;
  color: #3a3e46;
  background: #f1f2f5;
  border-radius: 8px;
  padding: 2px 7px;
}

/* Near me flat distance sort: flatten the day groups (bands
   hidden) so cards from every visible day order by distance in
   one list, like a maps result. display:contents promotes the
   cards into the column's flex context; card order is set inline
   by ldr-filter.js. Exiting Near me removes this class and clears
   the inline order, restoring the day-grouped view. */
.ep-box-col-12.ldr-nearby {
  display: flex;
  flex-direction: column;
}
.ep-box-col-12.ldr-nearby > .ldr-controls {
  order: -2;
}
.ep-box-col-12.ldr-nearby > .ldr-empty {
  order: -1;
}
.ep-box-col-12.ldr-nearby .ldr-day-group {
  display: contents;
}
.ep-box-col-12.ldr-nearby .ldr-day-band {
  display: none;
}
.ep-box-col-12.ldr-nearby .ldr-card .ldr-dist {
  display: inline-block;
  margin: 0 0 3px;
  font-size: 11px;
  font-weight: 700;
  color: #3a3e46;
  background: #f1f2f5;
  border-radius: 8px;
  padding: 2px 7px;
}
.ep-box-col-12.ldr-nearby .ldr-card .ldr-dist.ldr-dist-unknown {
  color: #5d6675;
  background: transparent;
  padding-left: 0;
  font-weight: 600;
  font-style: italic;
}

.ldr-sub {
  display: block;
  font-size: 10.5px;
  color: #5d6675;
  margin-top: 3px;
}

/* Ended/expired: desaturated flyer, dimmed text (worded stripe
   comes with the cancellation overlay layer, later) */
a.ldr-card.ldr-ended .ldr-th img {
  filter: grayscale(1) brightness(0.55);
}
a.ldr-card.ldr-ended .ldr-info {
  opacity: 0.72;
}

/* ------------------------------------------------------------
   PART 3 - Event DETAIL page (v1.5.0): status banner above the
   hero (hook pg-ep-event-group-details-banner) + LDR field block
   after the description (hook ep_after_single_events_description).
   Contrast, all previously verified pairs, no new colors:
   white on red #d81f3d 5.02:1, white on gray #4a4e55 8.36:1,
   white on purple #6b3fd4 6.39:1, ink #191b1e on #fff 17.3:1,
   label #63686f on #fff 5.6:1. Word always rides with the color.
   ------------------------------------------------------------ */
.ldr-dban {
  background: #d81f3d;
  color: #fff;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
    Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.45;
  padding: 12px 16px;
  border-radius: 10px;
  margin: 0 0 14px;
}
.ldr-dban strong {
  font-weight: 900;
  letter-spacing: 1.2px;
  margin-right: 8px;
}
.ldr-dban-end {
  background: #4a4e55;
}
.ldr-dban-mv {
  background: #6b3fd4;
}
.ldr-dfields {
  background: #fff;
  border: 1px solid #ebedf0;
  border-radius: 13px;
  padding: 14px 16px;
  margin-top: 14px;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
    Helvetica, Arial, sans-serif;
  color: #191b1e;
  font-size: 14px;
  line-height: 1.55;
}
.ldr-dfields .ldr-dfield {
  margin: 0 0 7px;
}
.ldr-dfields .ldr-dfield:last-child {
  margin-bottom: 0;
}
.ldr-dfields .ldr-dlabel {
  display: inline-block;
  min-width: 66px;
  font-weight: 800;
  color: #63686f;
  font-size: 11px;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  margin-right: 6px;
}


/* ============================================================
   PART 4 - Hide the Kadence page-title band on the Events page
   (v1.5.1). The band (section.entry-hero.page-hero-section, 200px)
   duplicated the header and pushed the calendar down a full third
   of a phone screen. The h1.entry-title is KEPT in the DOM for
   screen readers and SEO via the standard clip pattern (sr-only);
   display:none would remove it from the accessibility tree, so we
   never use it here. Scoped to .page-id-8 so it covers the page
   both as the front page (/) and at its own URL (/events/).
   ============================================================ */
.page-id-8 .entry-hero.page-hero-section,
.page-id-8 .entry-hero.page-hero-section .entry-hero-container-inner,
.page-id-8 .entry-hero.page-hero-section .hero-container,
.page-id-8 .entry-hero.page-hero-section .entry-header {
  padding: 0 !important;
  margin: 0 !important;
  min-height: 0 !important;
  background: none !important;
}
.page-id-8 .entry-hero.page-hero-section .entry-title {
  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;
}

/* ============================================================
   PART 5 - Event DETAIL page restyle to mockup file 4 (v1.9.0).
   Pure CSS hides + skin over EventPrime's stock single template,
   scoped to #ep_single_event_detail_page_content. Philosophy per
   spec: if EP renames anything, the clutter reappears styled by
   PART 1 but the page NEVER breaks. Selectors verified against
   the live DOM 2026-07-21 (posts 61/63/65).
   Removed from view: right sidebar (Scan QR Code / ticket box),
   wishlist+share icon strip, venue Details/Map/Weather/Other
   tabs nav (map was a 23px dead iframe; Directions link replaces
   it), "No data found" weather alert. Kept: flyer hero (now
   tap-to-zoom via js/ldr-lightbox.js), date/time, title, venue
   name+address, description, LDR fields, status banners.
   No new colors: red #d81f3d, ink #191b1e, meta #63686f,
   border #ebedf0 - all pairs previously AA-verified.
   ============================================================ */
#ep_single_event_detail_page_content .ep-main-container {
  max-width: 800px;
  margin: 0 auto;
}
/* QR/ticket sidebar gone; left column takes the full row. */
#ep_single_event_detail_page_content #ep-sl-right-area,
#ep_single_event_detail_page_content .ep-buy-ticket-section {
  display: none !important;
}
#ep_single_event_detail_page_content #ep-sl-left-area {
  flex: 0 0 100% !important;
  width: 100% !important;
  max-width: 100% !important;
}
/* Wishlist / share / iCal icon strip off (they live nowhere in
   the mockup; sharing is the browser's job). */
#ep_single_event_detail_page_content .ep-sl-action-icon-wrap {
  display: none !important;
}
/* Venue tabs nav + weather alert off. First tab-content (venue
   name) keeps rendering; the others already carry ep-item-hide.
   The venue placeholder thumb is also hidden - the venue has no
   photo, EP renders a dead pattern box, and the mockup shows the
   venue as a text line. Address renders in .ldr-dfields (EP's own
   address element is empty on this site, verified live). */
#ep_single_event_detail_page_content .ep-venue-details-tabs,
#ep_single_event_detail_page_content .ep-alert,
#ep_single_event_detail_page_content .ep-venue-img-section {
  display: none !important;
}
#ep_single_event_detail_page_content .ep-venue-details-section {
  flex: 0 0 100% !important;
  width: 100% !important;
  max-width: 100% !important;
}
/* EP's yellow "warning" accents -> E palette. */
#ep_single_event_detail_page_content #ep_single_event_title {
  border-left-color: #d81f3d !important;
  color: #191b1e;
}
#ep_single_event_detail_page_content .ep-event-type-cal-section .ep-bg-warning {
  background: transparent !important;
  color: #d81f3d !important;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  padding: 0 !important;
}
/* Flyer hero: rounded, zoom affordance. The hint pill only
   appears once ldr-lightbox.js marks the container zoomable, so
   no dead promise when JS is off. */
#ep_single_event_detail_page_content #ep_single_event_image img {
  width: 100%;
  height: auto;
  border-radius: 12px;
}
#ep_single_event_detail_page_content .ldr-zoomable {
  position: relative;
}
#ep_single_event_detail_page_content .ldr-zoomable img {
  cursor: zoom-in;
}
#ep_single_event_detail_page_content .ldr-zoomable::after {
  content: "Tap flyer to zoom";
  position: absolute;
  right: 10px;
  bottom: 10px;
  background: rgba(25, 27, 30, 0.85);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 999px;
  pointer-events: none;
}
/* Directions action in the fields block (replaces the dead map). */
.ldr-dfields .ldr-dirbtn {
  display: inline-block;
  background: #191b1e;
  color: #fff !important;
  font-weight: 800;
  font-size: 12px;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  padding: 8px 16px;
  border-radius: 999px;
  text-decoration: none;
  margin-top: 4px;
}
.ldr-dfields .ldr-dirbtn:focus-visible {
  outline: 2px solid #d81f3d;
  outline-offset: 2px;
}
/* Fullscreen flyer lightbox (keyboard operable, Esc closes). */
.ldr-lbx {
  position: fixed;
  inset: 0;
  z-index: 100000;
  background: rgba(10, 10, 12, 0.94);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px;
}
.ldr-lbx img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  cursor: zoom-out;
}
.ldr-lbx-close {
  position: absolute;
  top: 12px;
  right: 14px;
  background: transparent;
  border: 0;
  color: #fff;
  font-size: 34px;
  line-height: 1;
  cursor: pointer;
  padding: 6px 10px;
}
.ldr-lbx-close:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}
/* v1.9.2 - Neutralize the venue link on the event DETAIL page.
   EP renders the venue name as a plain text span (not a link); the
   only anchor to EP's stock venue page is the "open in new" icon
   <a id="ep_event_venue_url" href=".../venues/?venue=N" target="_blank">,
   whose sole child is a .material-icons-outlined SVG icon. That venue
   page is unstyled and adds nothing at this stage, so the link is
   neutralized and its icon hidden - the venue reads as plain text.
   Selector verified against the live DOM 2026-07-21 (post 61); the
   guessed .ep-sl-event-venue-box .material-icons-outlined does NOT
   exist on this site. Degrades safely: if EP renames the id the icon
   simply reappears as a working link, page never breaks. */
#ep_single_event_detail_page_content #ep_event_venue_url {
  pointer-events: none;
  cursor: default;
  text-decoration: none;
}
#ep_single_event_detail_page_content #ep_event_venue_url .material-icons-outlined {
  display: none !important;
}


/* PART 6 - global place browsing (v1.11.0).
   Country > Region > City selects plus the location / reset buttons.
   Colors reuse the verified E palette; no new pairs introduced.
   ink #191b1e on #fff 17.3:1, meta #63686f on #fff 5.6:1. */
.ldr-geo-place{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 6px}
.ldr-geo-place select{font:inherit;font-size:13px;color:#191b1e;background:#fff;
  border:1px solid #d5d8dd;border-radius:6px;padding:5px 8px;max-width:100%}
.ldr-geo-place select:focus-visible,.ldr-locate:focus-visible,.ldr-geo-reset:focus-visible{
  outline:2px solid #191b1e;outline-offset:2px}
.ldr-locate,.ldr-geo-reset{font:inherit;font-size:13px;cursor:pointer;
  border:1px solid #d5d8dd;border-radius:6px;padding:5px 10px;background:#fff;color:#5d6675}
.ldr-locate{border-color:#191b1e;color:#191b1e;font-weight:600}
.ldr-locate:hover,.ldr-geo-reset:hover{background:#f1f2f5}
.ldr-geo-place select[hidden],.ldr-locate[hidden],.ldr-geo-reset[hidden]{display:none!important}
@media (max-width:767px){.ldr-geo-place select{flex:1 1 100%}}
