.rseventcalendar,
.rseventcalendar-feed {
  --rseventcalendar-accent: var(--color-event-other, #756f69);
  font-family: var(--font-body, sans-serif);
  color: var(--color-text, #2a2e30);
}

.rseventcalendar {
  margin-block: clamp(2rem, 5vw, 4.5rem);
}

.rseventcalendar[hidden],
.rseventcalendar__year[hidden],
.rseventcalendar__month[hidden],
.rseventcalendar__path[hidden],
.rseventcalendar-card[hidden] {
  display: none !important;
}

.rseventcalendar__intro {
  margin-bottom: 2rem;
}

.rseventcalendar__year {
  display: grid;
  grid-template-columns: minmax(5rem, 0.18fr) minmax(0, 1fr);
  gap: clamp(1.25rem, 4vw, 3.5rem);
  padding-block: 1.25rem 3.5rem;
  border-top: 1px solid var(--color-border, #e4e4e4);
}

.rseventcalendar__year-title {
  position: sticky;
  top: calc(var(--topbar-height, 4.5rem) + 1rem);
  align-self: start;
  margin: 0;
  font-size: clamp(1.7rem, 4vw, 2.7rem);
  color: var(--color-heading, #1c1f21);
  font-variant-numeric: tabular-nums;
}

.rseventcalendar__months {
  display: grid;
  gap: clamp(2.5rem, 6vw, 4.75rem);
  min-width: 0;
}

.rseventcalendar__month-title {
  margin: 0 0 1.25rem;
  font-size: clamp(1.35rem, 2.3vw, 1.8rem);
  text-transform: capitalize;
}

.rseventcalendar__paths {
  display: grid;
  gap: 1.75rem;
}

.rseventcalendar__path {
  min-width: 0;
}

.rseventcalendar__path-title {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  margin: 0 0 0.8rem;
  color: var(--color-text-soft, #5e656a);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.rseventcalendar__path-title::before {
  width: 1.6rem;
  height: 2px;
  content: "";
  background: var(--color-accent, #d47519);
}

.rseventcalendar__path--workshops_retreats .rseventcalendar__path-title::before {
  background: var(--color-primary, #7a8836);
}

.rseventcalendar__grid,
.rseventcalendar-feed__items {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
  gap: 0.85rem;
}

.rseventcalendar__empty {
  padding: 1.1rem 1.2rem;
  border: 1px solid var(--color-border, #e4e4e4);
  border-radius: var(--radius-soft, 6px);
  background: color-mix(in srgb, var(--color-surface, #fff) 92%, var(--color-accent, #d47519));
}

.rseventcalendar-card {
  --rseventcalendar-accent: var(--color-event-other, #756f69);
  --rseventcalendar-accent-ink: var(--rseventcalendar-accent);
  --rseventcalendar-accent-ink: color-mix(in srgb, var(--rseventcalendar-accent) 70%, var(--color-heading, #1c1f21));
  /* Keep absolutely positioned screen-reader labels inside the card's scroll container. */
  position: relative;
  min-width: 0;
  height: 100%;
  border: 1px solid color-mix(in srgb, var(--rseventcalendar-accent) 25%, var(--color-border, #e4e4e4));
  border-radius: var(--radius-soft, 6px);
  background: var(--color-surface, #fff);
  box-shadow: 0 8px 22px rgb(24 28 26 / 5%);
  overflow: clip;
}

.rseventcalendar-card--focus-ashtanga {
  --rseventcalendar-accent: var(--color-event-focus-ashtanga, #be5b17);
}

.rseventcalendar-card--focus-therapy {
  --rseventcalendar-accent: var(--color-event-focus-therapy, #dc8546);
}

.rseventcalendar-card--mtc {
  --rseventcalendar-accent: var(--color-event-mtc, #7a8836);
}

.rseventcalendar-card--exam {
  --rseventcalendar-accent: var(--color-event-exam, #4a5052);
}

.rseventcalendar-card--workshop {
  --rseventcalendar-accent: var(--color-event-workshop, #a8672e);
}

.rseventcalendar-card--retreat {
  --rseventcalendar-accent: var(--color-event-retreat, #707052);
}

.rseventcalendar-card--yogatherapie {
  --rseventcalendar-accent: var(--color-event-yogatherapie, var(--color-primary, #7a8836));
}

.rseventcalendar-card__link {
  display: grid;
  grid-template-columns: 4.25rem minmax(0, 1fr);
  height: 100%;
  color: inherit;
  text-decoration: none;
  transition: border-color 160ms ease, transform 160ms ease, box-shadow 160ms ease;
}

.rseventcalendar-card__link:hover,
.rseventcalendar-card__link:focus-visible {
  color: inherit;
}

.rseventcalendar-card:has(.rseventcalendar-card__link:hover),
.rseventcalendar-card:has(.rseventcalendar-card__link:focus-visible) {
  border-color: color-mix(in srgb, var(--rseventcalendar-accent) 68%, var(--color-border, #e4e4e4));
  box-shadow: 0 12px 28px rgb(24 28 26 / 9%);
  transform: translateY(-1px);
}

.rseventcalendar-card__date-tile {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 0.12rem;
  padding: 1rem 0.5rem;
  color: var(--color-surface, #fff);
  border-right: 1px solid var(--rseventcalendar-accent-ink);
  background: var(--rseventcalendar-accent-ink);
}

.rseventcalendar-card__day {
  font-size: 1.62rem;
  font-weight: 500;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

.rseventcalendar-card__month-short {
  font-size: 0.67rem;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.rseventcalendar-card__body {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 0.95rem 1rem 0.9rem;
}

.rseventcalendar-card--public .rseventcalendar-card__body {
  background: linear-gradient(110deg, color-mix(in srgb, var(--rseventcalendar-accent) 3%, transparent), transparent 45%);
}

.rseventcalendar-card__eyebrow {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.35rem 0.7rem;
  margin-bottom: 0.45rem;
  font-size: 0.7rem;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0.045em;
  text-transform: uppercase;
}

.rseventcalendar-card__type {
  color: var(--rseventcalendar-accent-ink);
}

.rseventcalendar-card__count {
  color: var(--color-text-soft, #5e656a);
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
}

.rseventcalendar-card__title {
  display: block;
  margin-bottom: 0.35rem;
  color: var(--color-heading, #1c1f21);
  font-family: var(--font-heading, sans-serif);
  font-size: 1.06rem;
  font-weight: 500;
  line-height: 1.28;
  text-wrap: balance;
}

.rseventcalendar-card__date-label {
  display: block;
  margin-bottom: 0.75rem;
  color: var(--color-text, #2a2e30);
  font-size: 0.82rem;
  font-weight: 500;
  line-height: 1.45;
}

.rseventcalendar-card__meta {
  display: grid;
  gap: 0.25rem;
  margin-bottom: 0.9rem;
  color: var(--color-text-soft, #5e656a);
  font-size: 0.76rem;
  line-height: 1.45;
}

.rseventcalendar-card__meta-item {
  display: block;
}

.rseventcalendar-card__meta-label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.rseventcalendar-card__meta-item::before {
  display: inline-block;
  width: 0.9rem;
  margin-right: 0.2rem;
  color: var(--rseventcalendar-accent-ink);
  content: "•";
}

.rseventcalendar-card__meta-item--teachers::before {
  content: "◇";
}

.rseventcalendar-card__footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.55rem;
  margin-top: auto;
  padding-top: 0.7rem;
  border-top: 1px solid var(--color-border, #e4e4e4);
  font-size: 0.73rem;
  line-height: 1.35;
}

.rseventcalendar-card__status {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  color: var(--color-text-soft, #5e656a);
  font-weight: 600;
}

.rseventcalendar-card__status::before {
  width: 0.48rem;
  height: 0.48rem;
  border: 1px solid currentColor;
  border-radius: 50%;
  content: "";
}

.rseventcalendar-card__status.is-visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

.rseventcalendar-card__status.is-visually-hidden::before {
  display: none;
}

.rseventcalendar-card__status.is-registered {
  color: var(--color-primary, #7a8836);
  color: color-mix(in srgb, var(--color-primary, #7a8836) 70%, var(--color-heading, #1c1f21));
}

.rseventcalendar-card__status.is-registered::before {
  background: currentColor;
  box-shadow: inset 0 0 0 2px var(--color-surface, #fff);
}

.rseventcalendar-card__status.is-sold-out {
  color: var(--color-heading, #1c1f21);
}

.rseventcalendar-card__details {
  margin-left: auto;
  color: var(--color-heading, #1c1f21);
  font-weight: 600;
}

.rseventcalendar-card__details span {
  display: inline-block;
  margin-left: 0.18rem;
  color: var(--rseventcalendar-accent-ink);
  transition: transform 160ms ease;
}

.rseventcalendar-card__link:hover .rseventcalendar-card__details span,
.rseventcalendar-card__link:focus-visible .rseventcalendar-card__details span {
  transform: translateX(0.15rem);
}

.rsgridrail .rseventcalendar-feed,
.rsgridrail .rseventcalendar-feed__items,
.rsgridrail .rseventcalendar-card {
  height: 100%;
}

.rsgridrail .rseventcalendar-card__link {
  grid-template-columns: 3.75rem minmax(0, 1fr);
}

@media (max-width: 46rem) {
  .rseventcalendar__year {
    grid-template-columns: 1fr;
    gap: 1.1rem;
  }

  .rseventcalendar__year-title {
    position: static;
    font-size: 1.8rem;
  }
}

@media (max-width: 25rem) {
  .rseventcalendar-card__link {
    grid-template-columns: 3.6rem minmax(0, 1fr);
  }

  .rseventcalendar-card__body {
    padding-inline: 0.8rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .rseventcalendar-card,
  .rseventcalendar-card__link,
  .rseventcalendar-card__details span {
    transition: none;
  }
}
