:root {
    --sdcr-red: #ea0000;
    --sdcr-blue: #0b489e;
    --sdcr-black: #151515;
    --sdcr-cream: #f9f6e5;
    --sdcr-line: #b8ae98;
    --sdcr-time-col: 25%;
    --sdcr-copy-pad: 34px;
    --sdcr-font-regular: "Program Nar OT Regular", "ProgramNarOT-Regular", "Program Nar OT", sans-serif;
    --sdcr-font-medium: "Program Nar OT Medium", "ProgramNarOT-Medium", "Program Nar OT", sans-serif;
    --sdcr-font-black: "Program Nar OT Black", "ProgramNarOT-Black", "Program Nar OT", sans-serif;
}

.sdcr-calendar,
.sdcr-calendar * { box-sizing: border-box; }

.sdcr-calendar {
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
    padding: clamp(24px, 4vw, 54px) clamp(18px, 4vw, 64px) clamp(40px, 5vw, 72px);
    overflow-x: hidden;
    background: var(--sdcr-cream);
    color: var(--sdcr-black);
    font-family: var(--sdcr-font-regular);
}

.sdcr-filter {
    display: flex;
    align-items: center;
    gap: 22px;
    margin-bottom: clamp(36px, 5vw, 64px);
}

.sdcr-filter__label {
    flex: 0 0 auto;
    color: #8e8779;
    font-family: var(--sdcr-font-regular);
    font-size: clamp(15px, 1.5vw, 20px);
    line-height: 1;
    text-transform: uppercase;
}

.sdcr-filter__buttons { display: flex; flex-wrap: wrap; gap: 12px 18px; width: 100%; }

.sdcr-filter__button {
    min-width: clamp(108px, 13vw, 148px);
    padding: 9px 18px 7px;
    border: 1px solid var(--sdcr-line);
    border-radius: 4px;
    color: #746e62;
    background: transparent;
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
    font-family: var(--sdcr-font-medium);
    font-size: clamp(15px, 1.5vw, 20px);
    font-weight: 400;
    line-height: 1;
}

.sdcr-filter__button:hover,
.sdcr-filter__button:focus { color: var(--sdcr-black); border-color: var(--sdcr-black); outline: none; }
.sdcr-month { scroll-margin-top: 96px; }

.sdcr-month__title {
    margin: 0 0 clamp(22px, 3vw, 38px) calc(var(--sdcr-time-col) + var(--sdcr-copy-pad));
    color: var(--sdcr-blue);
    font-family: var(--sdcr-font-black);
    font-size: clamp(30px, 4vw, 48px);
    font-weight: 900;
    line-height: 1;
    text-transform: uppercase;
}

.sdcr-event { border-bottom: 1px solid var(--sdcr-line); }
.sdcr-event--new-date { border-top: 1px solid var(--sdcr-line); }
.sdcr-month__title + .sdcr-event { border-top: 0; }

.sdcr-event__date-row,
.sdcr-event__body { display: grid; grid-template-columns: minmax(118px, var(--sdcr-time-col)) minmax(0, 1fr); }

.sdcr-event__date-gutter,
.sdcr-event__time { border-right: 1px solid var(--sdcr-line); }

.sdcr-event__date {
    padding: 19px var(--sdcr-copy-pad) 15px;
    border-bottom: 1px solid var(--sdcr-line);
    color: var(--sdcr-blue);
    font-family: var(--sdcr-font-black);
    font-size: clamp(17px, 2vw, 25px);
    font-weight: 900;
    line-height: 1.1;
    text-transform: uppercase;
}

.sdcr-event__time {
    display: flex;
    align-items: center;
    justify-content: center;
    align-self: start;
    min-height: 102px;
    padding: 20px 12px;
    color: var(--sdcr-black);
    font-family: var(--sdcr-font-black);
    font-size: clamp(18px, 2vw, 27px);
    font-weight: 900;
    line-height: 1;
    text-align: center;
    text-transform: uppercase;
    white-space: nowrap;
}

.sdcr-event__main { min-width: 0; }

.sdcr-event__toggle {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 14px;
    width: 100%;
    min-height: 102px;
    margin: 0;
    padding: 25px var(--sdcr-copy-pad);
    border: 0;
    background: transparent;
    color: var(--sdcr-red);
    text-align: left;
    cursor: pointer;
}

.sdcr-event__toggle:focus-visible { outline: 2px solid var(--sdcr-blue); outline-offset: -4px; }

.sdcr-event__artist {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
    font-family: var(--sdcr-font-black);
    font-size: clamp(27px, 3.8vw, 46px);
    font-weight: 900;
    line-height: 1.02;
    text-transform: uppercase;
}

.sdcr-event__chevron {
    display: inline-block;
    width: 13px;
    height: 13px;
    flex: 0 0 13px;
    margin: 0 0 4px 2px;
    border-right: 3px solid var(--sdcr-black);
    border-bottom: 3px solid var(--sdcr-black);
    transform: rotate(45deg);
    transform-origin: center;
    transition: transform 180ms ease;
}

.sdcr-event.is-open .sdcr-event__chevron { margin-bottom: -4px; transform: rotate(225deg); }
.sdcr-event__panel { padding: 0 var(--sdcr-copy-pad) 34px; }

.sdcr-event__content {
    display: grid;
    grid-template-columns: minmax(190px, 38%) minmax(0, 1fr);
    gap: clamp(22px, 3vw, 38px);
    align-items: start;
    max-width: 800px;
}

.sdcr-event__image { width: 100%; overflow: visible; background: transparent; }
.sdcr-event__image--placeholder { aspect-ratio: 4 / 5; background: #d5d5d5; }
.sdcr-event__thumb { display: block; width: 100%; height: auto; max-width: 100%; object-fit: contain; }

.sdcr-event__description {
    max-width: 420px;
    color: var(--sdcr-black);
    font-family: "new-spirit-compressed", serif;
    font-size: clamp(15px, 1.45vw, 20px);
    font-style: normal;
    font-weight: 500;
    line-height: 1.45;
}

.sdcr-event__description p { margin: 0 0 14px; }

.sdcr-event__status {
    margin-top: 8px;
    color: var(--sdcr-red);
    font-family: var(--sdcr-font-black);
    font-size: clamp(15px, 1.45vw, 20px);
    font-weight: 900;
    line-height: 1.1;
    text-transform: uppercase;
}

.sdcr-event__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 12px;
    padding: 10px 17px 8px;
    border-radius: 5px;
    background: #df2b1f;
    color: #fff;
    font-family: var(--sdcr-font-medium);
    font-size: clamp(14px, 1.3vw, 18px);
    font-weight: 400;
    line-height: 1;
    text-decoration: none;
    text-transform: uppercase;
}

.sdcr-event__button:hover,
.sdcr-event__button:focus { background: var(--sdcr-black); color: #fff; outline: none; }
.sdcr-calendar--empty { padding: 30px; }

@media (max-width: 900px) {
    :root { --sdcr-time-col: 112px; --sdcr-copy-pad: 22px; }
    .sdcr-filter { align-items: flex-start; flex-direction: column; gap: 14px; }
    .sdcr-filter__buttons { gap: 10px; }
    .sdcr-filter__button { min-width: 110px; flex: 1 1 calc(33.333% - 10px); }
    .sdcr-event__content { grid-template-columns: minmax(170px, 38%) minmax(0, 1fr); }
}

@media (max-width: 640px) {
    :root { --sdcr-time-col: 66px; --sdcr-copy-pad: 12px; }
    .sdcr-calendar { max-width: 100%; padding: 20px 10px 36px; }
    .sdcr-filter { margin-bottom: 30px; }
    .sdcr-filter__label { font-size: 13px; }
    .sdcr-filter__buttons { gap: 7px; }
    .sdcr-filter__button { min-width: 0; flex: 1 1 calc(50% - 7px); padding: 8px 8px 7px; font-size: 12px; }
    .sdcr-month__title { margin-bottom: 18px; font-size: 27px; }
    .sdcr-event__date { padding-top: 13px; padding-bottom: 11px; font-size: 14px; }
    .sdcr-event__time,
    .sdcr-event__toggle { min-height: 76px; }
    .sdcr-event__time { padding: 14px 4px; font-size: 12px; white-space: normal; }
    .sdcr-event__toggle { gap: 8px; padding-top: 17px; padding-bottom: 17px; }
    .sdcr-event__artist { font-size: 21px; line-height: 1.06; }
    .sdcr-event__chevron { width: 9px; height: 9px; flex-basis: 9px; border-width: 2px; margin-bottom: 3px; }
    .sdcr-event.is-open .sdcr-event__chevron { margin-bottom: -3px; }
    .sdcr-event__panel { padding-bottom: 24px; }
    .sdcr-event__content { grid-template-columns: 1fr; gap: 15px; max-width: 100%; }
    .sdcr-event__image { max-width: 210px; }
    .sdcr-event__description { max-width: 100%; font-size: 15px; line-height: 1.45; }
    .sdcr-event__status { font-size: 14px; }
    .sdcr-event__button { padding: 8px 12px 7px; font-size: 13px; border-radius: 4px; }
}

@media (max-width: 380px) {
    :root { --sdcr-time-col: 58px; --sdcr-copy-pad: 9px; }
    .sdcr-calendar { padding-left: 7px; padding-right: 7px; }
    .sdcr-event__time { font-size: 11px; }
    .sdcr-event__date { font-size: 13px; }
    .sdcr-event__artist { font-size: 19px; }
}
