.rlm-events {
    --re-columns: 3;
    --re-gap: 1.5rem;
    --re-section-gap: 1.75rem;
    --re-content-gap: .8rem;
    --re-cell-height: 9rem;
    --re-image-ratio: 16/9;
    --re-image-width: 36%;
    --re-align: start;
    --re-line: color-mix(in srgb, currentColor 18%, transparent);
    --re-wash: color-mix(in srgb, currentColor 5%, transparent);
    font-family: inherit;
    color: inherit;
    display: flex;
    flex-direction: column;
    gap: var(--re-section-gap);
    isolation: isolate;
    min-width: 0;
    text-align: var(--re-align);
}
.rlm-events *, .rlm-events *::before, .rlm-events *::after { box-sizing: border-box; }
.rlm-events [hidden] { display: none !important; }
.rlm-events :is(h2,h3,h4,p) { margin: 0; color: inherit; }
.rlm-events .rlm-events__heading { font-family: inherit; font-size: clamp(1.6rem, 3vw, 2.4rem); font-weight: 600; line-height: 1.15; letter-spacing: -.025em; }
.rlm-events__header { display: grid; gap: .65rem; }
.rlm-events__intro { line-height: 1.65; max-width: 65ch; }
.rlm-events__toolbar { display: flex; justify-content: space-between; align-items: end; gap: 1rem; flex-wrap: wrap; }
.rlm-events__filters { display: flex; flex-wrap: wrap; gap: .75rem; flex: 1; }
.rlm-events__filter { display: grid; gap: .4rem; min-width: 0; max-width: 100%; flex: 1 1 11rem; }
.rlm-events__filter > span { font-size: .8em; font-weight: 600; }
.rlm-events .rlm-events__field {
    font: inherit; color: inherit; background: transparent; border: 1px solid var(--re-line, currentColor);
    border-radius: 6px; padding: .65rem .85rem; min-height: 44px; width: 100%; max-width: 100%; box-shadow: none;
}
.rlm-events select.rlm-events__field { padding-inline-end: 2rem; }
.rlm-events select.rlm-events__field option { background: Canvas; color: CanvasText; }
.rlm-events__views { display: flex; gap: .25rem; padding: .25rem; border: 1px solid var(--re-line, currentColor); border-radius: 8px; }
.rlm-events .rlm-events__button {
    display: inline-flex; align-items: center; justify-content: center; gap: .4em;
    font: inherit; font-size: .875em; font-weight: 600; line-height: 1.35; color: inherit;
    text-decoration: none; text-transform: none; letter-spacing: normal;
    background: transparent; border: 1px solid var(--re-line, currentColor); border-radius: 5px;
    padding: .65rem .95rem; min-height: 42px; max-width: 100%; white-space: normal; cursor: pointer;
    box-shadow: none; transition: background .15s ease, border-color .15s ease;
}
.rlm-events .rlm-events__button:hover, .rlm-events .rlm-events__button[aria-pressed="true"] { background: var(--re-wash); border-color: currentColor; }
.rlm-events .rlm-events__views .rlm-events__button { border-color: transparent; min-height: 36px; }
.rlm-events .rlm-events__views .rlm-events__button[aria-pressed="true"] { box-shadow: inset 0 -2px currentColor; }
.rlm-events :is(button,a,input,select):focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.rlm-events button:disabled { opacity: .4; cursor: default; }
.rlm-events__status:empty { display: none; }
.rlm-events__status { font-size: .8em; text-align: start; }
.rlm-events__results { display: grid; grid-template-columns: repeat(var(--re-columns), minmax(0, 1fr)); gap: var(--re-gap); min-width: 0; }
.rlm-events__card { min-width: 0; overflow: hidden; display: flex; flex-direction: column; border: 1px solid var(--re-line, currentColor); border-radius: 8px; background: transparent; }
.rlm-events__image { display: block; width: 100%; aspect-ratio: var(--re-image-ratio); object-fit: cover; height: auto; margin: 0; }
.rlm-events__body { display: flex; flex-direction: column; align-items: var(--re-align); gap: var(--re-content-gap); padding: 1.5rem; flex: 1; min-width: 0; }
.rlm-events__date { font-size: .8em; font-weight: 600; letter-spacing: .025em; line-height: 1.5; }
.rlm-events__category { font-size: .75em; letter-spacing: .035em; line-height: 1.5; text-transform: uppercase; }
.rlm-events .rlm-events__title { font-family: inherit; font-size: 1.25em; font-weight: 600; line-height: 1.3; letter-spacing: -.015em; overflow-wrap: anywhere; }
.rlm-events__meta { display: grid; gap: .3rem; font-size: .85em; line-height: 1.6; overflow-wrap: anywhere; }
.rlm-events__meta:empty { display: none; }
.rlm-events__meta a { color: inherit; text-decoration: underline; text-underline-offset: .2em; }
.rlm-events__description { font-size: .9em; line-height: 1.7; overflow-wrap: anywhere; }
.rlm-events__actions { display: flex; flex-wrap: wrap; justify-content: var(--re-align); gap: .6rem; margin-top: auto; padding-top: .4rem; }
.rlm-events__actions:empty { display: none; }
.rlm-events__full, .rlm-events:not([data-ready]) .rlm-events__details { display: none; }
.rlm-events[data-image-position="left"] .rlm-events__results[data-view="cards"] .rlm-events__card { flex-direction: row; }
.rlm-events[data-image-position="left"] .rlm-events__results[data-view="cards"] .rlm-events__image { width: var(--re-image-width); flex-shrink: 0; }
.rlm-events__results[data-view="agenda"] { display: flex; flex-direction: column; }
.rlm-events__agenda-group { display: grid; grid-template-columns: minmax(7rem, .2fr) minmax(0, 1fr); gap: 1.5rem; text-align: start; }
.rlm-events .rlm-events__agenda-date { font-family: inherit; font-size: .9em; font-weight: 600; line-height: 1.5; padding-top: 1.4rem; }
.rlm-events__agenda-items { display: grid; gap: .8rem; }
.rlm-events__results[data-view="agenda"] .rlm-events__card { flex-direction: row; }
.rlm-events__results[data-view="agenda"] .rlm-events__image { width: var(--re-image-width); max-width: 13rem; flex-shrink: 0; }
.rlm-events__results[data-view="month"] { display: block; }
.rlm-events__calendar-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; flex-wrap: wrap; }
.rlm-events__calendar-heading h3 { font: inherit; font-weight: 600; font-size: 1.2em; }
.rlm-events__calendar-nav { display: flex; gap: .4rem; }
.rlm-events__calendar { width: 100%; table-layout: fixed; border-collapse: collapse; border: 1px solid var(--re-line, currentColor); margin: 0; background: transparent; font: inherit; }
.rlm-events__calendar :is(th,td) { border: 1px solid var(--re-line, currentColor); background: transparent; color: inherit; text-align: start; vertical-align: top; padding: .65rem; }
.rlm-events .rlm-events__calendar :where(tbody tr:nth-child(odd) > td) { background-color: transparent; }
.rlm-events__calendar .rlm-events__weekday { padding-block: .8rem; font-size: .75em; font-weight: 600; }
.rlm-events__cell { height: var(--re-cell-height); }
.rlm-events__cell.is-outside { opacity: .4; }
.rlm-events__day-number { display: inline-flex; align-items: center; justify-content: center; min-width: 1.8rem; min-height: 1.8rem; font-size: .8em; border-radius: 50%; margin-bottom: .4rem; }
.rlm-events__cell.is-today .rlm-events__day-number { outline: 1px solid currentColor; font-weight: 700; }
.rlm-events .rlm-events__entry { display: block; width: 100%; color: inherit; font: inherit; font-size: .75em; font-weight: 500; line-height: 1.5; text-align: start; border: 0; border-inline-start: 2px solid currentColor; padding: .25rem .4rem; margin: .35rem 0 0; border-radius: 2px; background: var(--re-wash); text-decoration: none; white-space: normal; overflow-wrap: anywhere; cursor: pointer; }
.rlm-events .rlm-events__entry:hover { text-decoration: underline; }
.rlm-events .rlm-events__overflow { padding: .25rem; min-height: 32px; font-size: .75em; border: 0; }
.rlm-events__load { align-self: center; }
.rlm-events__empty { grid-column: 1/-1; padding: 3rem 1.5rem; text-align: center; border: 1px dashed var(--re-line, currentColor); border-radius: 8px; }
.rlm-events__dialog { position: fixed; inset: 0; z-index: 2147483000; width: 100%; height: 100%; max-width: none; max-height: none; margin: 0; padding: 1.5rem; border: 0; overflow: auto; background: rgba(0,0,0,.5); color: inherit; }
.rlm-events__dialog[open] { display: flex; align-items: flex-start; justify-content: center; }
.rlm-events__dialog::backdrop { background: transparent; }
.rlm-events__dialog-panel { position: relative; width: 680px; max-width: 100%; margin: auto; padding: 3.5rem 1.5rem 1.5rem; border-radius: 12px; background: Canvas; color: CanvasText; box-shadow: 0 20px 80px rgba(0,0,0,.15); }
.rlm-events .rlm-events__close { position: absolute; inset-block-start: .6rem; inset-inline-end: .6rem; font-size: 1.3rem; min-width: 40px; padding: .25rem; }
.rlm-events__dialog .rlm-events__card { border: 0; border-radius: 0; }
.rlm-events__dialog .rlm-events__body { padding: 1.5rem 0 0; }
.rlm-events__dialog .rlm-events__full { display: block; }
.rlm-events__dialog .rlm-events__full > * + * { margin-top: 1em; }
.rlm-events__dialog .rlm-events__excerpt, .rlm-events__dialog .rlm-events__details { display: none; }
.rlm-events__dialog.is-day .rlm-events__excerpt, .rlm-events__dialog.is-day .rlm-events__details { display: inline-flex; }
.rlm-events__dialog.is-day .rlm-events__full { display: none; }
.rlm-events__dialog.is-day .rlm-events__card { border-bottom: 1px solid var(--re-line, currentColor); padding-bottom: 1rem; }
.rlm-events__sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
@media (max-width: 1024px) { .rlm-events { --re-columns: 2; } }
@media (max-width: 767px) {
    .rlm-events { --re-columns: 1; --re-gap: 1rem; --re-cell-height: 6rem; }
    .rlm-events__toolbar, .rlm-events__filters { align-items: stretch; }
    .rlm-events__views { width: 100%; }
    .rlm-events__views > button { flex: 1; }
    .rlm-events__agenda-group { grid-template-columns: minmax(0, 1fr); gap: .65rem; }
    .rlm-events .rlm-events__agenda-date { padding-top: 0; }
    .rlm-events__body { padding: 1.1rem; }
    .rlm-events__calendar :is(th,td) { padding: .25rem; }
    .rlm-events__calendar .rlm-events__entry { font-size: .7em; padding-inline: .2rem; }
    .rlm-events__dialog { padding: .65rem; }
    .rlm-events__results[data-view="agenda"] .rlm-events__image { max-width: 6rem; }
}
@media (prefers-reduced-motion: reduce) { .rlm-events * { transition: none !important; scroll-behavior: auto !important; } }
