.bh-events-grid {
    --bh-event-card-min-width: 360px;
    --bh-event-card-row-height: 260px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-auto-rows: var(--bh-event-card-row-height);
    grid-auto-flow: dense;
    gap: 18px;
    width: 100%;
    align-items: stretch;
}

.bh-events-grid--columns-1 {
    grid-template-columns: 1fr;
}

.bh-events-grid--columns-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.bh-events-grid--columns-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.bh-events-calendar {
    display: grid;
    gap: 18px;
    width: 100%;
}

.bh-events-calendar__pinned-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
    gap: 18px;
    align-items: start;
}

.bh-events-calendar__pinned-column {
    display: grid;
    gap: 18px;
}

.bh-events-calendar__pinned-column .bh-event-card.is-featured {
    min-height: calc((var(--bh-event-card-row-height, 260px) * 2) + 18px);
}

.bh-events-calendar__pinned-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    align-items: stretch;
}

.bh-events-calendar__pinned-grid .bh-event-card {
    height: auto;
    min-height: 260px;
}

.bh-events-calendar__pinned-grid .bh-event-card.is-featured {
    grid-row: auto;
    min-height: calc((var(--bh-event-card-row-height, 260px) * 2) + 18px);
}

.bh-event-month-section {
    display: grid;
    grid-template-columns: 112px minmax(0, 1fr);
    gap: 18px;
    align-items: start;
}

.bh-event-month-section--beside-pinned {
    margin-bottom: 0;
}

.bh-event-month-heading h2 {
    margin: 0;
    padding-top: 16px;
    border-top: 3px solid #111;
}

.bh-event-month-section--beside-pinned .bh-events-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.bh-event-card {
    display: grid;
    grid-template-columns: 50px minmax(0, 1fr);
    gap: 14px;
    align-items: stretch;
    height: 100%;
    overflow: hidden;
    box-sizing: border-box;
    background: rgba(255, 255, 255, 0.64);
    border: 1px solid rgba(34, 22, 32, 0.12);
    border-radius: 0;
    padding: 18px;
}

.bh-event-card.has-no-date {
    grid-template-columns: 1fr;
}

.bh-event-card.is-featured {
    grid-row: span 2;
    background: rgba(255, 255, 255, 0.64);
}

.bh-event-card--quiet {
    background: rgba(255, 255, 255, 0.64);
    border-color: transparent;
    box-shadow: none;
}

.bh-event-card--quiet.is-featured {
    background: rgba(255, 255, 255, 0.64);
    border-color: transparent;
    box-shadow: none;
}

.bh-event-card.is-featured.is-pinned,
.bh-event-card--quiet.is-featured.is-pinned {
    background: rgba(174, 185, 238, 0.24);
    border-color: rgba(174, 185, 238, 0.72);
    border-top: 3px solid #8f9fe8;
    box-shadow: none;
}

.bh-event-card--plain {
    background: transparent;
    border-color: rgba(17, 17, 17, 0.16);
    padding: 0 0 20px;
}

.bh-event-card--plain.is-featured {
    background: transparent;
}

.bh-event-content {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
}

.bh-event-date {
    display: block;
    border-right: 1px solid rgba(17, 17, 17, 0.12);
    padding-right: 11px;
    color: #111;
    font-weight: 800;
    text-decoration: none;
}

.bh-event-day,
.bh-event-month {
    display: block;
}

.bh-event-day {
    font-size: 29px;
    line-height: 1;
}

.bh-event-month {
    margin-top: 4px;
    font-size: 12px;
    text-transform: uppercase;
}

.bh-event-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin: 0 0 10px;
}

.bh-event-tag {
    display: inline-flex;
    align-items: center;
    min-height: 20px;
    padding: 1px 6px;
    background: rgba(217, 222, 244, 0.72);
    color: #2d2d2d;
    border: 1px solid rgba(174, 185, 238, 0.72);
    border-radius: 0;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.2;
}

.bh-event-tag--status {
    background: rgba(255, 255, 255, 0.6);
    border-color: rgba(17, 17, 17, 0.14);
    color: #4f4944;
}

.bh-event-card--plain .bh-event-tag {
    background: transparent;
}

.bh-event-title {
    margin: 0 0 7px;
    font-size: 19px;
    line-height: 1.18;
}

.bh-event-meta,
.bh-event-description {
    margin: 0;
    font-family: "PT Serif", Georgia, "Times New Roman", serif;
    font-size: 16px;
    line-height: 1.48;
}

.bh-event-meta {
    color: #5f5a56;
}

.bh-event-description {
    display: -webkit-box;
    flex: 0 0 auto;
    margin-top: 8px;
    overflow: hidden;
    color: #1f1b18;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.bh-event-card.is-featured .bh-event-description {
    -webkit-line-clamp: 12;
}

.bh-event-link {
    display: inline-block;
    width: fit-content;
    margin-top: auto;
    color: #111;
    font-weight: 800;
    text-decoration: none;
    border-bottom: 2px solid currentColor;
}

.bh-event-link:hover {
    opacity: .78;
    text-decoration: none;
}

.bh-event-card.is-compact {
    grid-template-columns: 50px minmax(0, 1fr);
    gap: 12px;
    padding: 15px;
}

.bh-event-card.is-compact .bh-event-day {
    font-size: 27px;
}

.bh-event-card.is-compact .bh-event-title {
    font-size: 19px;
}

.bh-events-grid--quiet {
    gap: 18px;
}

.bh-events-grid--plain {
    gap: 24px;
}

.bh-events-empty {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 18px;
}

.bh-event-single {
    display: grid;
    gap: 17px;
}

.bh-event-single__meta {
    margin: 0;
    color: #5f5a56;
    font-family: "PT Serif", Georgia, "Times New Roman", serif;
    font-size: 18px;
    line-height: 1.5;
}

.bh-event-single__content > :first-child {
    margin-top: 0;
}

.bh-event-single__content > :last-child {
    margin-bottom: 0;
}

.bh-event-single__embed {
    background: rgba(255, 255, 255, 0.64);
    padding: 17px;
}

.bh-event-single__embed iframe {
    display: block;
    width: 100%;
    min-height: 720px;
    border: 1px solid rgba(34, 22, 32, 0.12);
}

.bh-event-single__action {
    margin: 0;
}

@media (max-width: 900px) {
    .bh-events-grid,
    .bh-events-calendar__pinned-grid,
    .bh-events-grid--columns-3 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .bh-events-calendar__pinned-layout,
    .bh-event-month-section {
        grid-template-columns: 1fr;
    }

    .bh-events-calendar__pinned-column .bh-event-card.is-featured {
        min-height: auto;
    }
}

@media (max-width: 640px) {
    .bh-events-grid,
    .bh-events-calendar__pinned-grid,
    .bh-events-grid--columns-2,
    .bh-events-grid--columns-3 {
        --bh-event-card-row-height: 250px;
        grid-template-columns: 1fr;
    }

    .bh-event-card {
        grid-template-columns: 52px minmax(0, 1fr);
        gap: 13px;
        padding: 17px;
    }

    .bh-event-card.has-no-date {
        grid-template-columns: 1fr;
    }

    .bh-event-date {
        padding-right: 11px;
    }

    .bh-event-day {
        font-size: 29px;
    }

    .bh-event-month-heading h2 {
        padding-top: 14px;
    }
}
