.cme-events {
    --cme-date-column: 12.5%;
    --cme-content-column: 87.5%;
    --cme-black: #111;
    --cme-grey: #d7d7d7;
    --cme-light-grey: #f2f2f2;
    --cme-red: #d3262c;
    --cme-secondary-accent: #d3edf0;
    --cme-row-gap: 15px;
    --cme-date-background: #111;
    --cme-date-text: #fff;
    --cme-list-background: #f2f2f2;
    --cme-featured-background: #c13835;
    --cme-featured-date-background: #111;
    --cme-tab-date-color: #777;
    --cme-modal-bg: #000;
    --cme-modal-text: #fff;
    --cme-modal-line: rgba(255,255,255,0.28);
    --cme-modal-muted: rgba(255,255,255,0.8);
    --cme-title-size: 2rem;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    width: 100%;
}

.cme-event-row {
    display: flex;
    width: 100%;
    min-height: 128px;
    margin: 0 0 var(--cme-row-gap);
    border-radius: 15px;
    overflow: hidden;
    background: var(--cme-list-background);
}

.cme-event-date {
    display: flex;
    flex: 0 0 var(--cme-date-column);
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 16px;
    color: var(--cme-date-text);
    background: var(--cme-date-background);
    text-align: center;
}

.cme-events .cme-event-row--featured {
    background: var(--cme-featured-background);
}

.cme-events .cme-event-row--featured .cme-event-title,
.cme-events .cme-event-row--featured .cme-event-time,
.cme-events .cme-event-row--featured .cme-event-subtitle {
    color: #fff !important;
}

.cme-events .cme-event-row--featured .cme-event-description-list,
.cme-events .cme-event-row--featured .cme-event-description-list p {
    color: #fff !important;
}

.cme-events .cme-event-row--featured .cme-event-type {
    color: #111 !important;
}

.cme-events .cme-event-row--featured .cme-event-date {
    color: #fff !important;
    background: var(--cme-featured-date-background);
}

.cme-event-month,
.cme-event-type {
    font-size: 1.3rem;
    font-weight: 300;
    line-height: 1.1;
}

.cme-event-day,
.cme-events .cme-event-title,
.cme-event-modal-panel h2 {
    font-size: var(--cme-title-size);
    font-family: inherit;
    font-weight: 700 !important;
    line-height: 1.1;
}

.cme-event-content {
    flex: 0 0 var(--cme-content-column);
    padding: 22px 28px;
}

.cme-events--hide-date-desktop .cme-event-date {
    display: none;
}

.cme-events--hide-date-desktop .cme-event-content {
    flex-basis: 100%;
}

.cme-event-heading {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 4px 18px;
}

.cme-events .cme-event-title {
    display: block;
    width: 100%;
    flex: 0 0 100%;
    padding: 0;
    border: 0;
    color: var(--cme-black);
    background: transparent;
    cursor: pointer;
    text-align: left;
}

.cme-event-subtitle {
    flex: 0 0 100%;
    margin-top: 5px;
    color: #555;
    font-size: 1rem;
    font-weight: 300;
    line-height: 1.3;
}

.cme-event-description-list {
    flex: 0 0 100%;
    margin-top: 8px;
    color: #444;
    font-size: .95rem;
    line-height: 1.5;
}

.cme-event-description-list p {
    margin: 0;
}

.cme-event-title:hover,
.cme-event-title:focus-visible {
    text-decoration: underline;
}

.cme-event-time {
    display: inline-flex;
    align-items: center;
    margin: 1rem 0;
    padding: 7px 12px;
    border: 1px solid transparent;
    border-radius: 50px;
    color: #1a1a1a;
    background: var(--cme-secondary-accent);
    font-size: .95rem;
    gap: 8px;
}

.cme-event-clock {
    position: relative;
    display: inline-block;
    width: 1.5em;
    height: 1.5em;
    background: var(--cme-red);
    border-radius: 50%;
    vertical-align: middle;
    flex-shrink: 0;
}

.cme-event-clock::before,
.cme-event-clock::after {
    position: absolute;
    left: 50%;
    content: '';
    background: #fff;
    border-radius: 999px;
    transform-origin: center bottom;
}

.cme-event-clock::before {
    bottom: 50%;
    width: 1px;
    height: 30%;
    transform: translateX(-50%) rotate(var(--cme-clock-hour-angle, 300deg));
}

.cme-event-clock::after {
    bottom: 50%;
    width: 1px;
    height: 40%;
    transform: translateX(-50%) rotate(var(--cme-clock-minute-angle, 0deg));
}

.cme-events .cme-event-row--featured .cme-event-time {
    border-color: rgba(255, 255, 255, .6);
    background: rgba(255, 255, 255, .28);
}

.cme-event-modal[hidden] { display: none; }
.cme-event-modal { --cme-title-size: 1.6rem; }
.cme-events-modal-open { overflow: hidden; }
.cme-event-modal { position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 999999; display: grid; width: 100vw; height: 100vh; place-items: center; padding: 20px; }
.cme-event-modal-backdrop { position: absolute; inset: 0; background: rgba(255, 255, 255, .75); }
.cme-event-modal-panel { position: relative; width: min(760px, 100%); max-height: min(720px, 90vh); overflow: auto; padding: 38px; border-radius: 15px; color: var(--cme-modal-text); background: var(--cme-modal-bg); }
.cme-event-close { position: absolute; top: 10px; right: 14px; border: 0; color: var(--cme-modal-text); background: transparent; font-size: 2rem; line-height: 1; cursor: pointer; }
.cme-event-modal-panel h2 { margin: 0 0 28px; padding-right: 30px; font-family: inherit !important; font-size: var(--cme-title-size) !important; font-weight: 700 !important; letter-spacing: 0 !important; line-height: 1.1 !important; color: var(--cme-modal-text); }
.cme-event-modal-subtitle { margin: -14px 0 28px; color: var(--cme-modal-muted); font-size: 1rem; font-weight: 300; line-height: 1.3; }
.cme-event-modal-columns { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0 34px; border-top: 1px solid var(--cme-modal-line); }
.cme-event-modal-columns > div { padding-top: 20px; }
.cme-event-modal-date-time p,
.cme-event-modal-type p { margin: 0 0 18px; color: var(--cme-modal-text); }
.cme-event-modal-type { border-left: 1px solid var(--cme-modal-line); padding-left: 34px !important; }
.cme-event-description { grid-column: 1 / -1 !important; width: 100%; border-top: 1px solid var(--cme-modal-line); margin-top: 4px; padding-bottom: 4px; color: var(--cme-modal-text); }
.cme-event-description p:last-child { margin-bottom: 0; }

.cme-event-tabs { display: contents; }
.cme-event-date-group { display: contents; }
.cme-event-tab { position: relative; order: 1; margin-right: 2rem; padding: 10px 14px; border: 0; color: var(--cme-tab-date-color); background: transparent; cursor: pointer; font: inherit; font-weight: 300; text-align: left; }
.cme-event-tab-label { display: inline-flex; align-items: baseline; gap: 5px; }
.cme-event-tab-month { font-size: 1.25rem; }
.cme-event-tab-day { font-size: 1.75rem; font-weight: inherit; }
.cme-event-tab.is-active { color: var(--cme-tab-date-color); font-weight: 700; }
.cme-event-tab:focus-visible { outline: 2px solid var(--cme-red); outline-offset: 2px; }
.cme-event-panel[hidden] { display: none; }
.cme-event-panel { flex: 0 0 100%; order: 2; width: 100%; margin-top: 22px;}
.cme-event-panel:not([hidden]) { animation: cme-event-panel-open .28s ease-out both; }
.cme-event-accordion-icon { display: none; }
.cme-events-empty-date { margin: 0 0 15px; color: #777; }

@keyframes cme-event-panel-open {
    from { opacity: 0; transform: translateY(-8px); }
    to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 900px) {
    .cme-event-row { min-height: 116px; }
    .cme-event-date { padding: 14px 10px; }
    .cme-event-content { padding: 19px 22px; }
    .cme-events { --cme-title-size: 1.75rem; }
    .cme-event-month,
    .cme-event-type { font-size: 1.15rem; }
    .cme-event-subtitle,
    .cme-event-modal-subtitle { font-size: .95rem; }
    .cme-event-time { margin-top: 14px; padding: 6px 10px; font-size: .9rem; }
    .cme-event-tab { margin-right: 1rem; }
    .cme-event-modal-panel { padding: 32px; }
    .cme-event-modal-panel h2 { --cme-title-size: 1.75rem; }
}

@media (max-width: 650px) {
    .cme-events { display: block; }
    .cme-event-row { min-height: 110px; }
    .cme-event-date { flex-basis: 25%; padding: 10px; }
    .cme-event-content { flex-basis: 75%; padding: 18px 16px; }
    .cme-events--hide-date-mobile .cme-event-date { display: none; }
    .cme-events--hide-date-mobile .cme-event-content { flex-basis: 100%; }
    .cme-events--hide-date-desktop .cme-event-date { display: flex; }
    .cme-events--hide-date-desktop .cme-event-content { flex-basis: 75%; }
    .cme-events--hide-date-desktop.cme-events--hide-date-mobile .cme-event-content { flex-basis: 100%; }
    .cme-events { --cme-title-size: 1.5rem; }
    .cme-event-month, .cme-event-type { font-size: 1rem; }
    .cme-event-subtitle,
    .cme-event-modal-subtitle { font-size: .9rem; }
    .cme-event-modal-columns { grid-template-columns: 1fr; gap: 0; }
    .cme-event-modal-type { border-left: 0; padding-left: 0 !important; }
    .cme-event-description { grid-column: auto; }
    .cme-event-modal-panel { padding: 30px 22px; }
    .cme-event-modal-panel h2 { --cme-title-size: 1.5rem; }
    .cme-event-tabs { display: block; margin-bottom: 0; }
    .cme-event-date-group { display: block; }
    .cme-event-tab { display: flex; justify-content: space-between; align-items: center; width: 100%; padding: 13px 4px; border-bottom: 1px solid var(--cme-grey); }
    .cme-event-accordion-icon { position: relative; display: inline-block; width: 16px; height: 16px; margin-left: 12px; color: currentColor; }
    .cme-event-accordion-icon::before,
    .cme-event-accordion-icon::after { position: absolute; top: 50%; left: 50%; width: 14px; height: 2px; background: currentColor; content: ''; transform: translate(-50%, -50%); }
    .cme-event-accordion-icon::after { transform: translate(-50%, -50%) rotate(90deg); }
    .cme-event-tab.is-active .cme-event-accordion-icon::after { display: none; }
    .cme-event-panel { padding-top: 15px; margin-top: 0; border-top: 0; }
    .cme-event-tab-month { font-size: 1.4rem; }
    .cme-event-tab-day { font-size: 2rem; }
}

@media (max-width: 480px) {
    .cme-event-date { padding: 8px 6px; }
    .cme-event-content { padding: 16px 12px; }
    .cme-events { --cme-title-size: 1.3rem; }
    .cme-event-month,
    .cme-event-type { font-size: .9rem; }
    .cme-event-time { margin-top: 11px; padding: 5px 8px; font-size: .8rem; }
    .cme-event-clock { border-width: 1px; }
    .cme-event-modal { padding: 12px; }
    .cme-event-modal-panel { padding: 26px 18px; }
    .cme-event-modal-panel h2 { --cme-title-size: 1.3rem; margin-bottom: 20px; }
}

@media (prefers-reduced-motion: reduce) {
    .cme-event-panel:not([hidden]) { animation: none; }
}
