/* Upcoming Classes only. Bootstrap owns the responsive columns. */
.cce-upcoming { padding: 3rem 0; background: #f6f7f8; color: #111; }
.cce-upcoming__header { text-align: center; margin-bottom: 2.5rem; }
.cce-upcoming__header h1 { margin: 0; font-family: Georgia, "Times New Roman", serif; font-weight: 700; font-size: clamp(1.75rem, 3vw, 2.75rem); line-height: 1.2; }
.cce-upcoming__header::after { content: ""; display: block; width: 160px; max-width: 50%; height: 4px; margin: 1.5rem auto 0; background: var(--cce-primary-red); }
.cce-upcoming__column { margin-bottom: 1.75rem; min-width: 0; }
.cce-upcoming__card { display: flex; flex-direction: column; min-width: 0; width: 100%; background: #fff; border: 1px solid #e2e3e5; border-radius: 18px; overflow: hidden; box-shadow: 0 8px 22px rgba(0,0,0,.08); }
.cce-upcoming__image { display: block; width: 100%; height: auto; aspect-ratio: 800 / 267; object-fit: contain; background: #fff; }
.cce-upcoming__body { display: flex; flex-direction: column; flex: 1; min-width: 0; padding: 1.25rem; font-family: "Open Sans", Arial, sans-serif; }
.cce-upcoming__title { color: #111; font-family: inherit; font-size: 1.25rem; font-weight: 700; line-height: 1.35; margin: 0 0 1.25rem; overflow-wrap: anywhere; }
.cce-upcoming__actions { display: flex; gap: .5rem; margin-top: auto; }
.cce-upcoming__button { display: inline-flex; flex: 1 1 0; min-width: 0; align-items: center; justify-content: center; gap: .4rem; padding: .8rem .45rem; border: 1px solid transparent; border-radius: 10px; color: #fff; font-size: .875rem; font-weight: 700; line-height: 1.4; text-align: center; text-decoration: none; }
.cce-upcoming__button--learn { background: #111; }
.cce-upcoming__button--schedule { background: var(--cce-primary-red); }
.cce-upcoming__button:hover { color: #fff; text-decoration: none; filter: brightness(.9); }
.cce-upcoming__button:focus-visible { color: #fff; outline: 3px solid #111; outline-offset: 3px; text-decoration: underline; }
.cce-upcoming__button svg { flex: 0 0 18px; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 991.98px) {
    .cce-upcoming__actions { flex-direction: column; }
    .cce-upcoming__button { flex-basis: auto; width: 100%; white-space: nowrap; }
}
@media (max-width: 767.98px) { .cce-upcoming { padding: 2rem 0; } .cce-upcoming__header { margin-bottom: 1.75rem; } }
@media (max-width: 359.98px) { .cce-upcoming__body { padding: 1rem; } }
