/* Prototype-style EventON cards on the homepage. */
.ppc-upcoming-events { --ppc-upcoming-violet: #5815ca; --ppc-upcoming-ink: #211c31; --ppc-upcoming-muted: #686477; --ppc-upcoming-line: #e8e6ef; color: var(--ppc-upcoming-ink); font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.et_pb_section:has(.ppc-upcoming-events) .et_pb_heading .et_pb_module_header { text-transform: uppercase; }
.ppc-upcoming-events__subtitle { margin: .4rem auto 1.6rem; color: var(--ppc-upcoming-muted); font-size: 1rem; line-height: 1.55; text-align: center; }
.ppc-upcoming-events__list { display: grid; grid-template-columns: repeat( 2, minmax( 0, 1fr ) ); gap: 1.5rem; margin: 0 auto; max-width: 1180px; }
.ppc-upcoming-event { overflow: hidden; border: 1px solid var(--ppc-upcoming-line); border-radius: 13px; background: #fff; box-shadow: 0 18px 50px rgba( 41, 23, 80, .12 ); }
.ppc-upcoming-event--featured, .ppc-upcoming-event--secondary { display: grid; grid-template-columns: 112px minmax( 0, 1fr ); min-height: 310px; }
.ppc-upcoming-event__date { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 1.5rem 1.1rem; background: linear-gradient( 145deg, #5211c3, #7b34de ); color: #fff; text-align: center; }
.ppc-upcoming-event__date::after { position: absolute; right: 0; bottom: 0; left: 0; height: 4px; background: #f0c960; content: ''; }
.ppc-upcoming-event__date span:first-child { color: #eddaff; font-size: .78rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.ppc-upcoming-event__date strong { margin: .45rem 0 .25rem; font: 700 4.6rem/1 Georgia, serif; }
.ppc-upcoming-event__date span:nth-child(3) { color: #f4eaff; font-size: .82rem; }
.ppc-upcoming-event__date small { margin-top: 1rem; color: #f8e9a9; font-size: .8rem; font-weight: 750; }
.ppc-upcoming-event__copy { display: flex; flex-direction: column; justify-content: center; padding: 1.8rem 2rem; }
.ppc-upcoming-event__pill { align-self: flex-start; border-radius: 100px; background: #f0e8ff; color: #5520ad; padding: .45rem .65rem; font-size: .64rem; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.ppc-upcoming-event__copy h3 { max-width: 620px; margin: .9rem 0 .55rem; color: var(--ppc-upcoming-ink); font: 700 1.6rem/1.2 Georgia, "Times New Roman", serif; }
.ppc-upcoming-event__summary { max-width: 650px; margin: 0; color: #5b5668; font-size: .9rem; line-height: 1.65; }
.ppc-upcoming-event__facts { display: flex; flex-wrap: wrap; gap: .65rem 1.25rem; margin-top: 1.15rem; color: #3d3949; font-size: .83rem; font-weight: 650; }
.ppc-upcoming-event__facts span { display: inline-flex; align-items: flex-start; gap: .5rem; }
.ppc-upcoming-event__facts i { display: inline-grid; width: 19px; height: 19px; flex: none; place-items: center; border-radius: 5px; background: #f2ecff; color: var(--ppc-upcoming-violet); font-size: .68rem; font-style: normal; }
.ppc-upcoming-event__link { display: inline-flex; align-items: center; gap: .5rem; align-self: flex-start; margin-top: 1.1rem; color: var(--ppc-upcoming-violet); font-size: .82rem; font-weight: 850; text-decoration: none; }
.ppc-upcoming-events__calendar-link { max-width: 1180px; margin: 1.25rem auto 0; text-align: center; }
.ppc-upcoming-events__calendar-link a { display: inline-block; border-bottom: 2px solid #f0c960; color: var(--ppc-upcoming-violet); font-size: .88rem; font-weight: 800; padding: .45rem 0; text-decoration: none; }
.ppc-upcoming-events__empty, .ppc-upcoming-events__unavailable { margin: 0 auto; max-width: 980px; color: var(--ppc-upcoming-muted); }
@media ( max-width: 900px ) {
    .ppc-upcoming-events__list { grid-template-columns: 1fr; max-width: 760px; }
    .ppc-upcoming-event--featured, .ppc-upcoming-event--secondary { min-height: 0; }
}
@media ( max-width: 650px ) {
    .ppc-upcoming-event--featured, .ppc-upcoming-event--secondary { grid-template-columns: 96px minmax( 0, 1fr ); }
    .ppc-upcoming-event__date { padding: 1.1rem .5rem; }
    .ppc-upcoming-event__date span:first-child { font-size: .58rem; letter-spacing: .08em; }
    .ppc-upcoming-event__date strong { font-size: 3.3rem; }
    .ppc-upcoming-event__date span:nth-child(3), .ppc-upcoming-event__date small { font-size: .68rem; }
    .ppc-upcoming-event__copy { padding: 1.3rem 1.1rem; }
    .ppc-upcoming-event__copy h3 { font-size: 1.3rem; }
    .ppc-upcoming-event__facts { display: grid; gap: .55rem; font-size: .76rem; }
}
