/**
 * Radebeul Events – Frontend CSS
 * v1.1 – Theme-Isolation / CSS-Konflikt-Schutz
 *
 * @package RadebeulEvents
 */

/* ─── Custom Properties ─────────────────────────────────────────── */
.ra-events-wrap,
.ra-single-wrap {
  --ra-accent:        #e11d48;
  --ra-accent-light:  #fef1f4;
  --ra-accent-hover:  #be123c;
  --ra-text:          #111827;
  --ra-text-2:        #6b7280;
  --ra-text-3:        #9ca3af;
  --ra-border:        #e5e7eb;
  --ra-bg:            #ffffff;
  --ra-bg-2:          #f9fafb;
  --ra-bg-3:          #f3f4f6;
  --ra-radius:        14px;
  --ra-radius-sm:     8px;
  --ra-radius-lg:     20px;
  --ra-shadow-sm:     0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);
  --ra-shadow:        0 4px 16px rgba(0,0,0,.08), 0 1px 4px rgba(0,0,0,.04);
  --ra-shadow-lg:     0 12px 40px rgba(0,0,0,.12), 0 4px 12px rgba(0,0,0,.06);
  --ra-transition:    .2s cubic-bezier(.4,0,.2,1);
  --ra-font:          -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
}

/* ─── Box-Sizing Reset ──────────────────────────────────────────── */
.ra-events-wrap *,
.ra-single-wrap *,
.ra-events-wrap *::before,
.ra-single-wrap *::before,
.ra-events-wrap *::after,
.ra-single-wrap *::after {
  box-sizing: border-box !important;
}

/* ─── SVG Fix: blocks theme from setting svg { width: 100% } ─────── */
.ra-events-wrap svg,
.ra-single-wrap svg {
  display:    inline-block !important;
  width:      auto !important;
  height:     auto !important;
  max-width:  none !important;
  max-height: none !important;
  vertical-align: middle;
  flex-shrink: 0;
}

/* ─── Base ───────────────────────────────────────────────────────── */
.ra-events-wrap,
.ra-single-wrap {
  font-family: var(--ra-font) !important;
  color:       var(--ra-text) !important;
  -webkit-font-smoothing: antialiased;
  line-height: 1.5;
}

.ra-events-wrap h1,.ra-events-wrap h2,.ra-events-wrap h3,
.ra-events-wrap p,.ra-single-wrap h1,.ra-single-wrap h2,
.ra-single-wrap h3,.ra-single-wrap p { margin:unset; padding:unset; }

.ra-events-wrap ul,.ra-events-wrap ol {
  list-style: none !important;
  padding:    0    !important;
  margin:     0    !important;
}

.ra-events-wrap a,.ra-single-wrap a { text-decoration:none; color:inherit; }

.ra-events-wrap img,.ra-single-wrap img {
  max-width: 100% !important;
  height: auto;
  display: block;
}

/* ─── Container ─────────────────────────────────────────────────── */
.ra-container {
  max-width: 1200px !important;
  width:     100%   !important;
  margin:    0 auto !important;
  padding:   0 24px !important;
}

/* ─── Hero ───────────────────────────────────────────────────────── */
.ra-hero {
  position:    relative !important;
  min-height:  300px    !important;
  display:     flex     !important;
  align-items: flex-end !important;
  overflow:    hidden   !important;
  background-color: #1a1c3b !important; /* Fallback - background-image kommt als Inline-Style */
  margin:      0        !important;
}
.ra-hero__bg {
  position:            absolute !important;
  inset:               0        !important;
  background-size:     cover    !important;
  background-position: center   !important;
}
.ra-hero__overlay {
  position:   absolute !important;
  inset:      0        !important;
  background: linear-gradient(to top,rgba(0,0,0,.75) 0%,rgba(0,0,0,.4) 50%,rgba(0,0,0,.15) 100%) !important;
}
.ra-hero__content {
  position: relative   !important;
  z-index:  2          !important;
  padding:  52px 0 38px!important;
  color:    #fff        !important;
  width:    100%        !important;
}
.ra-hero__title {
  font-size:      clamp(1.75rem,4vw,3rem) !important;
  font-weight:    800    !important;
  letter-spacing: -.02em !important;
  line-height:    1.15   !important;
  color:          #fff   !important;
  margin:         0 0 10px !important;
  text-shadow:    0 2px 12px rgba(0,0,0,.5) !important;
}
.ra-hero__subtitle {
  font-size:   1rem !important;
  color:       rgba(255,255,255,.88) !important;
  margin:      0    !important;
  max-width:   480px !important;
  line-height: 1.6  !important;
}

/* ─── Filter Bar ─────────────────────────────────────────────────── */
.ra-filter-bar {
  position:        sticky   !important;
  top:             0        !important;
  z-index:         100      !important;
  background:      rgba(255,255,255,.97) !important;
  backdrop-filter: blur(16px) !important;
  border-bottom:   1px solid var(--ra-border) !important;
  padding:         12px 0   !important;
  box-shadow:      0 2px 8px rgba(0,0,0,.06) !important;
  margin:          0        !important;
}
.ra-filter-bar__inner {
  display:        flex  !important;
  flex-direction: row   !important;
  align-items:    center !important;
  gap:            8px   !important;
  flex-wrap:      wrap  !important;
  list-style:     none  !important;
  margin:         0     !important;
  padding:        0     !important;
}

/* Search */
.ra-filter-search {
  display:     flex  !important;
  flex-direction: row !important;
  align-items: center !important;
  gap:         8px   !important;
  background:  var(--ra-bg-3) !important;
  border:      1.5px solid transparent !important;
  border-radius: 10px !important;
  padding:     8px 12px !important;
  flex:        1 1 180px !important;
  max-width:   260px !important;
  min-width:   140px !important;
  transition:  border-color var(--ra-transition) !important;
}
.ra-filter-search:focus-within {
  border-color: var(--ra-accent) !important;
  background:   #fff             !important;
}
.ra-filter-search svg {
  width:       16px !important;
  height:      16px !important;
  flex-shrink: 0    !important;
  color:       var(--ra-text-3) !important;
}
.ra-filter-search input,
.ra-filter-search input[type="text"],
.ra-filter-search input[type="search"] {
  border:      none        !important;
  background:  transparent !important;
  outline:     none        !important;
  box-shadow:  none        !important;
  font-size:   .875rem     !important;
  font-family: var(--ra-font) !important;
  color:       var(--ra-text) !important;
  width:       100%        !important;
  padding:     0           !important;
  margin:      0           !important;
  height:      auto        !important;
  min-height:  0           !important;
  line-height: 1.4         !important;
}
.ra-filter-search input::placeholder { color: var(--ra-text-3) !important; }

/* Selects */
.ra-filter-select {
  -webkit-appearance: none !important;
  -moz-appearance:    none !important;
  appearance:         none !important;
  display:            block !important;
  background-color:   var(--ra-bg-3) !important;
  background-image:   url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2.5'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") !important;
  background-repeat:  no-repeat !important;
  background-position: right 10px center !important;
  border:             1.5px solid transparent !important;
  border-radius:      10px !important;
  padding:            8px 32px 8px 12px !important;
  font-size:          .875rem !important;
  font-family:        var(--ra-font) !important;
  color:              var(--ra-text) !important;
  cursor:             pointer !important;
  flex:               1 1 120px !important;
  max-width:          180px !important;
  min-width:          100px !important;
  height:             auto  !important;
  line-height:        1.4   !important;
}
.ra-filter-select:focus {
  outline:          none !important;
  border-color:     var(--ra-accent) !important;
  background-color: #fff !important;
}

/* Reset button */
.ra-filter-reset {
  display:     inline-flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap:         5px !important;
  background:  none !important;
  border:      1.5px solid var(--ra-border) !important;
  border-radius: 10px !important;
  padding:     7px 12px !important;
  font-size:   .8125rem !important;
  font-family: var(--ra-font) !important;
  color:       var(--ra-text-2) !important;
  cursor:      pointer !important;
  white-space: nowrap  !important;
  box-shadow:  none    !important;
  text-shadow: none    !important;
}
.ra-filter-reset:hover { border-color:var(--ra-accent) !important; color:var(--ra-accent) !important; }
.ra-filter-reset svg   { width:14px !important; height:14px !important; }

/* ─── Toolbar ────────────────────────────────────────────────────── */
.ra-toolbar {
  display:         flex          !important;
  flex-direction:  row           !important;
  align-items:     center        !important;
  justify-content: space-between !important;
  flex-wrap:       wrap          !important;
  gap:             12px          !important;
  padding:         18px 0 0      !important;
  margin:          0             !important;
}
.ra-view-switcher {
  display:        flex  !important;
  flex-direction: row   !important;
  align-items:    center !important;
  gap:            4px   !important;
  list-style:     none  !important;
  margin:         0     !important;
  padding:        0     !important;
}
.ra-view-btn {
  display:     inline-flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap:         5px !important;
  background:  none !important;
  border:      none !important;
  border-radius: 8px !important;
  padding:     7px 13px !important;
  font-size:   .875rem !important;
  font-family: var(--ra-font) !important;
  color:       var(--ra-text-2) !important;
  cursor:      pointer !important;
  box-shadow:  none !important;
  text-shadow: none !important;
  white-space: nowrap !important;
  position:    relative !important;
  transition:  all var(--ra-transition) !important;
}
.ra-view-btn::after {
  content:    '' !important;
  position:   absolute !important;
  bottom:     -2px !important;
  left:       50% !important;
  transform:  translateX(-50%) scaleX(0) !important;
  width:      20px !important;
  height:     2px  !important;
  background: var(--ra-accent) !important;
  border-radius: 2px !important;
  transition: transform var(--ra-transition) !important;
}
.ra-view-btn.is-active { color:var(--ra-accent) !important; font-weight:600 !important; }
.ra-view-btn.is-active::after { transform:translateX(-50%) scaleX(1) !important; }
.ra-view-btn:hover     { background:var(--ra-bg-3) !important; }
.ra-view-btn svg       { width:15px !important; height:15px !important; }

.ra-sort-select {
  display:     flex    !important;
  align-items: center  !important;
  gap:         6px     !important;
  font-size:   .8125rem !important;
  color:       var(--ra-text-2) !important;
}
.ra-sort-select select {
  -webkit-appearance: none !important;
  appearance:         none !important;
  background:         none !important;
  border:             none !important;
  box-shadow:         none !important;
  font-size:          .875rem !important;
  font-family:        var(--ra-font) !important;
  color:              var(--ra-text) !important;
  font-weight:        600 !important;
  cursor:             pointer !important;
  outline:            none !important;
  padding:            2px 20px 2px 0 !important;
  background-image:   url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2.5'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") !important;
  background-repeat:  no-repeat !important;
  background-position: right 0 center !important;
  height:             auto !important;
}

/* ─── Feed ───────────────────────────────────────────────────────── */
.ra-feed { padding:28px 0 56px !important; min-height:200px !important; }

/* ─── Groups ─────────────────────────────────────────────────────── */
.ra-group { margin-bottom:44px !important; }
.ra-group__header {
  display:     flex  !important;
  flex-direction: row !important;
  align-items: center !important;
  gap:         10px  !important;
  margin-bottom: 16px !important;
}
.ra-group__header svg { width:20px !important; height:20px !important; color:var(--ra-text-2) !important; }
.ra-group__title {
  font-size:   1.0625rem !important;
  font-weight: 700       !important;
  color:       var(--ra-text) !important;
  margin:      0   !important;
  padding:     0   !important;
  letter-spacing: -.01em !important;
}
.ra-group__subtitle { font-size:.8125rem !important; color:var(--ra-text-2) !important; margin:0 !important; }

/* ─── Cards Row ──────────────────────────────────────────────────── */
.ra-group__scroll { position:relative !important; }

.ra-cards-row {
  display:               grid !important;
  grid-template-columns: repeat(auto-fill,minmax(240px,1fr)) !important;
  gap:                   18px !important;
  list-style: none !important; margin:0 !important; padding:0 !important;
}
.ra-cards-row--scroll {
  display:           flex !important;
  flex-direction:    row  !important;
  overflow-x:        auto !important;
  gap:               18px !important;
  scroll-snap-type:  x mandatory !important;
  -webkit-overflow-scrolling: touch !important;
  padding-bottom:    6px  !important;
}
.ra-cards-row--scroll::-webkit-scrollbar { height:3px; }
.ra-cards-row--scroll::-webkit-scrollbar-track { background:var(--ra-bg-3); }
.ra-cards-row--scroll::-webkit-scrollbar-thumb { background:var(--ra-border); border-radius:2px; }
.ra-cards-row--scroll .ra-card { flex:0 0 260px !important; scroll-snap-align:start !important; }

/* ─── Cards ──────────────────────────────────────────────────────── */
.ra-card {
  position:    relative  !important;
  display:     flex      !important;
  flex-direction: column !important;
  background:  var(--ra-bg) !important;
  border-radius: var(--ra-radius) !important;
  box-shadow:  var(--ra-shadow-sm) !important;
  border:      1px solid var(--ra-border) !important;
  overflow:    hidden    !important;
  transition:  transform var(--ra-transition), box-shadow var(--ra-transition) !important;
  color:       var(--ra-text) !important;
}
.ra-card:hover { transform:translateY(-3px) !important; box-shadow:var(--ra-shadow-lg) !important; }
.ra-card__link { position:absolute !important; inset:0 !important; z-index:1 !important; }

.ra-card__img-wrap {
  position:    relative !important;
  overflow:    hidden   !important;
  aspect-ratio: 16/9    !important;
  background:  var(--ra-bg-3) !important;
  flex-shrink: 0        !important;
}
.ra-card__img {
  width:       100% !important;
  height:      100% !important;
  object-fit:  cover !important;
  display:     block !important;
  max-width:   none  !important;
  transition:  transform .4s ease !important;
}
.ra-card:hover .ra-card__img { transform:scale(1.03) !important; }

.ra-card__img-placeholder {
  width:      100% !important; height:100% !important;
  display:    flex !important; align-items:center !important; justify-content:center !important;
  background: linear-gradient(135deg,var(--ra-bg-3),var(--ra-border)) !important;
}
.ra-card__img-placeholder svg { width:36px !important; height:36px !important; opacity:.3 !important; }

.ra-card__time {
  position:    absolute !important; bottom:8px !important; left:8px !important;
  background:  rgba(0,0,0,.65) !important; backdrop-filter:blur(6px) !important;
  color:       #fff !important; font-size:.75rem !important; font-weight:600 !important;
  padding:     3px 8px !important; border-radius:6px !important; z-index:2 !important;
}
.ra-card__badge {
  position:  absolute !important; top:8px !important; left:8px !important;
  font-size: .7rem !important; font-weight:700 !important;
  padding:   2px 7px !important; border-radius:5px !important;
  text-transform:uppercase !important; letter-spacing:.04em !important; z-index:2 !important;
}
.ra-card__badge--neu,.ra-card__badge--new     { background:#10b981 !important; color:#fff !important; }
.ra-card__badge--beliebt                      { background:#f59e0b !important; color:#fff !important; }
.ra-card__badge--empfohlen,.ra-card__badge--featured { background:var(--ra-accent) !important; color:#fff !important; }

.ra-bookmark-btn {
  position:    absolute !important; top:8px !important; right:8px !important;
  width:       32px !important; height:32px !important;
  background:  rgba(255,255,255,.9) !important;
  border:      none !important; border-radius:50% !important;
  display:     flex !important; align-items:center !important; justify-content:center !important;
  cursor:      pointer !important; z-index:3 !important;
  padding:     0 !important; box-shadow:none !important;
  color:       var(--ra-text-2) !important;
  transition:  all var(--ra-transition) !important;
}
.ra-bookmark-btn svg { width:17px !important; height:17px !important; }
.ra-bookmark-btn:hover,.ra-bookmark-btn.is-bookmarked { background:#fff !important; color:var(--ra-accent) !important; }
.ra-bookmark-btn.is-bookmarked .ra-bookmark-btn__icon { fill:var(--ra-accent) !important; stroke:var(--ra-accent) !important; }

.ra-card__body {
  padding:   13px 15px 15px !important;
  display:   flex !important; flex-direction:column !important; gap:5px !important; flex:1 !important;
}
.ra-card__meta {
  display:flex !important; flex-direction:row !important;
  align-items:center !important; gap:5px !important; flex-wrap:wrap !important;
}
.ra-card__title {
  font-size:.9rem !important; font-weight:700 !important;
  line-height:1.35 !important; margin:0 !important; padding:0 !important;
}
.ra-card__title a { color:var(--ra-text) !important; text-decoration:none !important; position:relative !important; z-index:2 !important; }
.ra-card__title a:hover { color:var(--ra-accent) !important; }

.ra-card__location {
  display:flex !important; flex-direction:row !important;
  align-items:center !important; gap:3px !important;
  font-size:.78rem !important; color:var(--ra-text-2) !important; margin:0 !important;
}
.ra-card__location svg { width:11px !important; height:11px !important; }

.ra-card__excerpt {
  font-size:.79rem !important; color:var(--ra-text-2) !important; margin:0 !important;
  line-height:1.5 !important; display:-webkit-box !important;
  -webkit-line-clamp:2 !important; -webkit-box-orient:vertical !important; overflow:hidden !important;
}
.ra-card__footer {
  display:flex !important; flex-direction:row !important;
  align-items:center !important; justify-content:space-between !important;
  margin-top:auto !important; padding-top:8px !important;
  border-top:1px solid var(--ra-border) !important;
}
.ra-card__price { font-size:.8rem !important; font-weight:600 !important; }
.ra-price-free  { color:#10b981 !important; }
.ra-card__ics {
  display:flex !important; align-items:center !important;
  color:var(--ra-text-3) !important; text-decoration:none !important;
  position:relative !important; z-index:2 !important;
}
.ra-card__ics svg   { width:13px !important; height:13px !important; }
.ra-card__ics:hover { color:var(--ra-accent) !important; }

/* ─── Tags ───────────────────────────────────────────────────────── */
.ra-cat-tag {
  display:inline-flex !important; align-items:center !important;
  font-size:.67rem !important; font-weight:700 !important;
  color:#fff !important; padding:2px 7px !important; border-radius:5px !important;
  text-transform:uppercase !important; letter-spacing:.04em !important; white-space:nowrap !important;
}
.ra-cat-tag--sm { font-size:.62rem !important; padding:1px 5px !important; }

.ra-aud-tag {
  display:inline-flex !important; align-items:center !important; gap:3px !important;
  font-size:.67rem !important; color:var(--ra-text-2) !important;
  background:var(--ra-bg-3) !important; padding:2px 6px !important; border-radius:5px !important; white-space:nowrap !important;
}
.ra-aud-tag svg  { width:10px !important; height:10px !important; }
.ra-aud-tag--sm  { font-size:.62rem !important; }

/* ─── List View ──────────────────────────────────────────────────── */
.ra-list-view .ra-group__scroll { display:flex !important; flex-direction:column !important; }

.ra-list-item {
  display:flex !important; flex-direction:row !important; align-items:center !important;
  gap:14px !important; padding:13px 0 !important;
  border-bottom:1px solid var(--ra-border) !important;
  border-top:none !important; border-left:none !important; border-right:none !important;
  background:transparent !important; margin:0 !important;
}
.ra-list-item:last-child { border-bottom:none !important; }

.ra-list-item__date-col {
  display:flex !important; flex-direction:column !important;
  align-items:center !important; min-width:46px !important; flex-shrink:0 !important;
}
.ra-list-item__dayname { font-size:.68rem !important; color:var(--ra-text-3) !important; text-transform:uppercase !important; }
.ra-list-item__daynum  { font-size:1.2rem !important; font-weight:800 !important; color:var(--ra-accent) !important; margin:0 !important; padding:0 !important; }
.ra-list-item__month   { font-size:.68rem !important; color:var(--ra-text-2) !important; }

.ra-list-item__thumb {
  width:60px !important; height:45px !important;
  flex-shrink:0 !important; border-radius:7px !important; overflow:hidden !important;
}
.ra-list-item__thumb img {
  width:100% !important; height:100% !important; object-fit:cover !important; display:block !important; max-width:none !important;
}
.ra-list-item__info { flex:1 !important; min-width:0 !important; }
.ra-list-item__meta {
  display:flex !important; flex-direction:row !important;
  align-items:center !important; gap:5px !important; flex-wrap:wrap !important; margin-bottom:2px !important;
}
.ra-list-item__title {
  font-size:.9rem !important; font-weight:600 !important;
  margin:0 0 3px !important; padding:0 !important;
  overflow:hidden !important; text-overflow:ellipsis !important; white-space:nowrap !important;
}
.ra-list-item__title a { color:var(--ra-text) !important; text-decoration:none !important; }
.ra-list-item__title a:hover { color:var(--ra-accent) !important; }

.ra-list-item__details {
  display:flex !important; flex-direction:row !important;
  align-items:center !important; gap:10px !important; flex-wrap:wrap !important;
}
.ra-list-item__details span {
  display:inline-flex !important; align-items:center !important; gap:3px !important;
  font-size:.78rem !important; color:var(--ra-text-2) !important;
}
.ra-list-item__details svg { width:11px !important; height:11px !important; }

.ra-list-item__actions {
  display:flex !important; flex-direction:row !important;
  align-items:center !important; gap:6px !important; flex-shrink:0 !important;
}
.ra-list-item__actions .ra-bookmark-btn {
  position:static !important; width:30px !important; height:30px !important; background:var(--ra-bg-3) !important;
}
.ra-list-item__ics {
  display:flex !important; align-items:center !important; justify-content:center !important;
  width:30px !important; height:30px !important;
  background:var(--ra-bg-3) !important; border-radius:50% !important;
  color:var(--ra-text-2) !important; text-decoration:none !important;
}
.ra-list-item__ics svg   { width:15px !important; height:15px !important; }
.ra-list-item__ics:hover { background:var(--ra-accent) !important; color:#fff !important; }

/* ─── Calendar ───────────────────────────────────────────────────── */
.ra-calendar-wrap {
  background:var(--ra-bg) !important; border:1px solid var(--ra-border) !important;
  border-radius:var(--ra-radius-lg) !important; overflow:hidden !important; box-shadow:var(--ra-shadow) !important;
}
.ra-cal-nav {
  display:flex !important; flex-direction:row !important;
  align-items:center !important; justify-content:space-between !important;
  padding:18px 22px 14px !important; border-bottom:1px solid var(--ra-border) !important;
}
.ra-cal-nav__title {
  font-size:1.0625rem !important; font-weight:700 !important;
  margin:0 !important; padding:0 !important; color:var(--ra-text) !important;
}
.ra-cal-nav__btn {
  background:var(--ra-bg-3) !important; border:none !important;
  border-radius:8px !important; width:34px !important; height:34px !important;
  display:flex !important; align-items:center !important; justify-content:center !important;
  cursor:pointer !important; color:var(--ra-text) !important; padding:0 !important;
}
.ra-cal-nav__btn svg   { width:15px !important; height:15px !important; }
.ra-cal-nav__btn:hover { background:var(--ra-accent) !important; color:#fff !important; }

.ra-cal-grid { display:grid !important; grid-template-columns:repeat(7,1fr) !important; }
.ra-cal-header {
  text-align:center !important; padding:9px 4px !important;
  font-size:.72rem !important; font-weight:600 !important; color:var(--ra-text-3) !important;
  text-transform:uppercase !important; letter-spacing:.04em !important;
  border-bottom:1px solid var(--ra-border) !important;
}
.ra-cal-day {
  min-height:72px !important; padding:5px !important;
  border-right:1px solid var(--ra-border) !important;
  border-bottom:1px solid var(--ra-border) !important;
  cursor:pointer !important;
}
.ra-cal-day:nth-child(7n)        { border-right:none !important; }
.ra-cal-day:nth-last-child(-n+7) { border-bottom:none !important; }
.ra-cal-day:hover                { background:var(--ra-bg-2) !important; }
.ra-cal-day--other-month         { opacity:.4 !important; }
.ra-cal-day--today .ra-cal-day__num {
  background:var(--ra-accent) !important; color:#fff !important;
  border-radius:50% !important; width:22px !important; height:22px !important;
  display:flex !important; align-items:center !important; justify-content:center !important;
}
.ra-cal-day__num {
  font-size:.79rem !important; font-weight:600 !important;
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  width:22px !important; height:22px !important; margin:0 0 3px !important;
  color:var(--ra-text) !important;
}
.ra-cal-day__events { display:flex !important; flex-direction:column !important; gap:2px !important; }
.ra-cal-event-dot {
  font-size:.62rem !important; color:#fff !important; background:var(--ra-accent) !important;
  border-radius:3px !important; padding:1px 4px !important;
  white-space:nowrap !important; overflow:hidden !important; text-overflow:ellipsis !important;
}

/* ─── Skeleton ───────────────────────────────────────────────────── */
.ra-skeleton {
  display:grid !important; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)) !important; gap:18px !important;
}
.ra-skeleton-card {
  border-radius:var(--ra-radius) !important; overflow:hidden !important;
  background:var(--ra-bg) !important; border:1px solid var(--ra-border) !important;
}
.ra-skeleton-card__img {
  aspect-ratio:16/9 !important; min-height:120px !important; background:var(--ra-bg-3) !important; display:block !important;
}
.ra-skeleton-card__body {
  padding:13px 15px 15px !important; display:flex !important; flex-direction:column !important; gap:9px !important;
}
.ra-skeleton-line {
  height:11px !important; min-height:11px !important;
  background:linear-gradient(90deg,var(--ra-bg-3) 25%,#e9ebee 50%,var(--ra-bg-3) 75%) !important;
  background-size:200% 100% !important; border-radius:5px !important;
  animation:ra-shimmer 1.4s infinite !important; display:block !important;
}
.ra-skeleton-line--sm { height:9px !important; min-height:9px !important; width:60% !important; }
.ra-skeleton-line--lg { height:15px !important; min-height:15px !important; }

@keyframes ra-shimmer { 0% { background-position:200% 0; } 100% { background-position:-200% 0; } }

/* ─── Load More ──────────────────────────────────────────────────── */
.ra-load-more { display:flex !important; justify-content:center !important; padding:28px 0 !important; }
.ra-load-more-btn {
  display:inline-flex !important; align-items:center !important; gap:7px !important;
  background:var(--ra-bg) !important; border:1.5px solid var(--ra-border) !important;
  border-radius:100px !important; padding:11px 26px !important;
  font-size:.9rem !important; font-family:var(--ra-font) !important;
  font-weight:600 !important; color:var(--ra-text) !important; cursor:pointer !important;
  box-shadow:none !important; text-shadow:none !important;
}
.ra-load-more-btn:hover {
  border-color:var(--ra-accent) !important; color:var(--ra-accent) !important;
  box-shadow:0 0 0 3px var(--ra-accent-light) !important;
}
.ra-load-more-btn.is-loading { pointer-events:none !important; opacity:.6 !important; }
.ra-load-more-btn.is-loading::before {
  content:'' !important; display:inline-block !important;
  width:14px !important; height:14px !important;
  border:2px solid var(--ra-border) !important; border-top-color:var(--ra-accent) !important;
  border-radius:50% !important; animation:ra-spin .7s linear infinite !important;
}
@keyframes ra-spin { to { transform:rotate(360deg); } }

/* ─── No Results ─────────────────────────────────────────────────── */
.ra-no-results { text-align:center !important; padding:70px 24px !important; }
.ra-no-results__icon {
  width:58px !important; height:58px !important; background:var(--ra-bg-3) !important;
  border-radius:50% !important; display:flex !important; align-items:center !important; justify-content:center !important;
  margin:0 auto 18px !important; color:var(--ra-text-3) !important;
}
.ra-no-results__icon svg { width:28px !important; height:28px !important; }
.ra-no-results__title { font-size:1.2rem !important; font-weight:700 !important; margin:0 0 7px !important; color:var(--ra-text) !important; }
.ra-no-results__text  { color:var(--ra-text-2) !important; margin:0 0 18px !important; font-size:.9rem !important; }

/* ─── Features Footer ────────────────────────────────────────────── */
.ra-features {
  background:var(--ra-bg-2) !important; border-top:1px solid var(--ra-border) !important;
  padding:44px 0 !important; margin-top:0 !important;
}
.ra-features__grid {
  display:grid !important; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)) !important;
  gap:28px !important; list-style:none !important; margin:0 !important; padding:0 !important;
}
.ra-feature-item {
  display:flex !important; flex-direction:row !important; align-items:flex-start !important; gap:12px !important;
}
.ra-feature-item__icon {
  width:40px !important; height:40px !important; border-radius:10px !important;
  display:flex !important; align-items:center !important; justify-content:center !important; flex-shrink:0 !important;
}
.ra-feature-item__icon svg { width:20px !important; height:20px !important; }
.ra-feature-item__title { font-size:.9rem !important; font-weight:700 !important; margin:0 0 3px !important; color:var(--ra-text) !important; }
.ra-feature-item__text  { font-size:.79rem !important; color:var(--ra-text-2) !important; margin:0 !important; line-height:1.5 !important; }

/* ─── Badges ─────────────────────────────────────────────────────── */
.ra-badge {
  display:inline-flex !important; align-items:center !important;
  border-radius:6px !important; font-size:.72rem !important; font-weight:700 !important;
  padding:2px 8px !important; white-space:nowrap !important;
}
.ra-badge--neu,.ra-badge--new   { background:#dcfce7 !important; color:#166534 !important; }
.ra-badge--beliebt              { background:#fef9c3 !important; color:#854d0e !important; }
.ra-badge--empfohlen            { background:#fce7f3 !important; color:#9d174d !important; }
.ra-badge--sm                   { font-size:.65rem !important; padding:1px 5px !important; }

.ra-status { display:inline-flex !important; align-items:center !important; font-size:.72rem !important; font-weight:600 !important; padding:2px 7px !important; border-radius:5px !important; }
.ra-status--cancelled { background:#fee2e2 !important; color:#991b1b !important; }
.ra-status--changed   { background:#fef9c3 !important; color:#854d0e !important; }

/* ─── Buttons ────────────────────────────────────────────────────── */
.ra-btn {
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  gap:7px !important; border-radius:10px !important;
  font-family:var(--ra-font) !important; font-size:.9rem !important; font-weight:600 !important;
  cursor:pointer !important; text-decoration:none !important;
  padding:9px 18px !important; border:1.5px solid transparent !important;
  box-shadow:none !important; text-shadow:none !important; line-height:1.4 !important;
  transition:all var(--ra-transition) !important;
}
.ra-btn--primary { background:var(--ra-accent) !important; color:#fff !important; border-color:var(--ra-accent) !important; }
.ra-btn--primary:hover { background:var(--ra-accent-hover) !important; border-color:var(--ra-accent-hover) !important; }
.ra-btn--outline { background:transparent !important; color:var(--ra-text) !important; border-color:var(--ra-border) !important; }
.ra-btn--outline:hover { border-color:var(--ra-accent) !important; color:var(--ra-accent) !important; }
.ra-btn--full { width:100% !important; }
.ra-btn svg   { width:15px !important; height:15px !important; }

/* ─── Scroll Arrows ──────────────────────────────────────────────── */
.ra-scroll-arrow {
  position:absolute !important; top:50% !important; transform:translateY(-50%) !important;
  background:#fff !important; border:1px solid var(--ra-border) !important; border-radius:50% !important;
  width:34px !important; height:34px !important;
  display:flex !important; align-items:center !important; justify-content:center !important;
  cursor:pointer !important; box-shadow:var(--ra-shadow) !important; z-index:5 !important;
  color:var(--ra-text) !important; padding:0 !important;
}
.ra-scroll-arrow svg    { width:14px !important; height:14px !important; }
.ra-scroll-arrow:hover  { box-shadow:var(--ra-shadow-lg) !important; }
.ra-scroll-arrow--left  { left:-17px !important; }
.ra-scroll-arrow--right { right:-17px !important; }

/* ─── Single Event ───────────────────────────────────────────────── */
.ra-single-wrap  { max-width:100% !important; overflow-x:hidden !important; }
.ra-single-hero  {
  position:relative !important; min-height:380px !important;
  display:flex !important; align-items:flex-end !important;
  overflow:hidden !important; background:linear-gradient(135deg,#111827,#1f2937) !important;
}
.ra-single-hero__img { position:absolute !important; inset:0 !important; }
.ra-single-hero__img img { width:100% !important; height:100% !important; object-fit:cover !important; display:block !important; max-width:none !important; }
.ra-single-hero__img--placeholder { background:linear-gradient(135deg,#1f2937,#374151) !important; }
.ra-single-hero__overlay {
  position:absolute !important; inset:0 !important;
  background:linear-gradient(to top,rgba(0,0,0,.8) 0%,rgba(0,0,0,.4) 50%,transparent 100%) !important;
}
.ra-single-hero__content {
  position:relative !important; z-index:1 !important;
  color:#fff !important; padding:56px 0 44px !important; width:100% !important;
}
.ra-single-hero__cats { display:flex !important; flex-direction:row !important; gap:7px !important; flex-wrap:wrap !important; margin-bottom:11px !important; }
.ra-single-hero__title {
  font-size:clamp(1.6rem,4vw,2.8rem) !important; font-weight:800 !important;
  margin:0 0 14px !important; padding:0 !important; color:#fff !important;
  text-shadow:0 2px 10px rgba(0,0,0,.45) !important; max-width:750px !important;
}
.ra-single-hero__meta { display:flex !important; flex-direction:row !important; flex-wrap:wrap !important; gap:14px !important; }
.ra-single-hero__meta > span { display:inline-flex !important; align-items:center !important; gap:5px !important; font-size:.9rem !important; color:rgba(255,255,255,.9) !important; }
.ra-single-hero__meta svg { width:14px !important; height:14px !important; }

.ra-single-body {
  display:grid !important; grid-template-columns:1fr 340px !important;
  gap:44px !important; padding-top:44px !important; padding-bottom:72px !important; align-items:start !important;
}
.ra-single-section { margin-bottom:44px !important; }
.ra-single-section__title { font-size:1.125rem !important; font-weight:700 !important; margin:0 0 18px !important; padding:0 !important; color:var(--ra-text) !important; }
.ra-single-content { font-size:.9375rem !important; line-height:1.7 !important; color:var(--ra-text) !important; }
.ra-single-content p { margin-bottom:1.2em !important; }

.ra-dates-list { border:1px solid var(--ra-border) !important; border-radius:var(--ra-radius) !important; overflow:hidden !important; }
.ra-dates-list__item {
  display:grid !important; grid-template-columns:50px 1fr auto auto !important;
  align-items:center !important; gap:14px !important; padding:13px 18px !important;
  border-bottom:1px solid var(--ra-border) !important;
}
.ra-dates-list__item:last-child { border-bottom:none !important; }
.ra-dates-list__item:hover { background:var(--ra-bg-2) !important; }

.ra-dates-list__day   { font-size:1.2rem !important; font-weight:800 !important; color:var(--ra-accent) !important; margin:0 !important; }
.ra-dates-list__month { font-size:.72rem !important; font-weight:600 !important; color:var(--ra-text-2) !important; text-transform:uppercase !important; }
.ra-dates-list__info  { display:flex !important; flex-direction:column !important; gap:1px !important; }
.ra-dates-list__info strong { font-size:.9rem !important; }
.ra-dates-list__info span,.ra-dates-list__info em { font-size:.79rem !important; color:var(--ra-text-2) !important; }
.ra-dates-list__ics {
  display:inline-flex !important; align-items:center !important; gap:3px !important;
  font-size:.72rem !important; color:var(--ra-text-3) !important; text-decoration:none !important;
  padding:3px 7px !important; border-radius:5px !important; border:1px solid var(--ra-border) !important;
}
.ra-dates-list__ics svg   { width:12px !important; height:12px !important; }
.ra-dates-list__ics:hover { border-color:var(--ra-accent) !important; color:var(--ra-accent) !important; }

.ra-single-sidebar { position:sticky !important; top:80px !important; }
.ra-sidebar-box {
  background:var(--ra-bg) !important; border:1px solid var(--ra-border) !important;
  border-radius:var(--ra-radius) !important; padding:18px !important; margin-bottom:14px !important;
  box-shadow:var(--ra-shadow-sm) !important;
}
.ra-sidebar-box__title {
  display:flex !important; flex-direction:row !important; align-items:center !important;
  gap:7px !important; font-size:.9375rem !important; font-weight:700 !important;
  margin:0 0 14px !important; color:var(--ra-text) !important;
}
.ra-sidebar-box__title svg { width:16px !important; height:16px !important; }
.ra-export-btns { display:flex !important; flex-direction:column !important; gap:7px !important; }
.ra-detail-list { display:grid !important; grid-template-columns:auto 1fr !important; gap:9px 14px !important; margin:0 !important; padding:0 !important; }
.ra-detail-list dt { font-size:.8rem !important; font-weight:600 !important; color:var(--ra-text-2) !important; white-space:nowrap !important; margin:0 !important; padding:0 !important; }
.ra-detail-list dd { font-size:.84rem !important; color:var(--ra-text) !important; margin:0 !important; line-height:1.5 !important; }
.ra-detail-list dd a { color:var(--ra-accent) !important; text-decoration:none !important; }

.ra-back-link {
  display:inline-flex !important; align-items:center !important; gap:5px !important;
  color:var(--ra-text-2) !important; text-decoration:none !important;
  font-size:.875rem !important; font-weight:500 !important; padding:7px 0 !important;
}
.ra-back-link svg   { width:14px !important; height:14px !important; }
.ra-back-link:hover { color:var(--ra-accent) !important; }

.ra-cards-grid       { display:grid !important; gap:18px !important; }
.ra-cards-grid--small { grid-template-columns:repeat(auto-fill,minmax(190px,1fr)) !important; }

/* ─── Responsive ─────────────────────────────────────────────────── */
@media (max-width:1024px) {
  .ra-single-body           { grid-template-columns:1fr !important; }
  .ra-single-sidebar        { position:static !important; }
}
@media (max-width:768px) {
  .ra-hero                  { min-height:220px !important; }
  .ra-hero__content         { padding:32px 0 24px !important; }
  .ra-filter-search         { max-width:100% !important; flex:1 1 100% !important; }
  .ra-filter-select         { flex:1 1 calc(50% - 8px) !important; max-width:none !important; }
  .ra-cards-row             { grid-template-columns:repeat(auto-fill,minmax(180px,1fr)) !important; gap:12px !important; }
  .ra-cards-row--scroll .ra-card { flex:0 0 220px !important; }
  .ra-single-hero           { min-height:260px !important; }
  .ra-single-body           { padding-top:22px !important; gap:22px !important; }
  .ra-cal-day               { min-height:50px !important; }
  .ra-cal-event-dot         { display:none !important; }
  .ra-list-item__thumb      { display:none !important; }
}
@media (max-width:480px) {
  .ra-container             { padding:0 14px !important; }
  .ra-toolbar               { flex-direction:column !important; align-items:flex-start !important; }
  .ra-cards-row             { grid-template-columns:1fr 1fr !important; gap:10px !important; }
  .ra-filter-select         { flex:1 1 100% !important; }
}
@media print {
  .ra-filter-bar,.ra-toolbar,.ra-load-more,.ra-features,.ra-bookmark-btn,.ra-export-btns { display:none !important; }
}
