/* Upcoming page event-card layout. */
.upcoming-format{
  max-width:860px;
  margin-left:auto;
  margin-right:auto;
  background:#f8fafd;
  border:1px solid #eef1f6;
  border-radius:18px;
  padding:28px 30px;
}

.upcoming-format h2{
  margin-top:0;
}

.upcoming-event-list{
  display:grid;
  gap:24px;
  max-width:960px;
  margin:34px auto 0;
}

.upcoming-event-card{
  display:grid;
  grid-template-columns:132px minmax(0,1fr);
  gap:30px;
  align-items:stretch;
  padding:30px;
  background:#fff;
  border:1px solid rgba(218,220,224,.9);
  border-radius:24px;
  box-shadow:0 10px 30px rgba(60,64,67,.08);
}

.upcoming-event-card:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 46px rgba(60,64,67,.14);
  transition:.18s ease;
}

.upcoming-event-card__date{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-height:136px;
  border-radius:20px;
  background:linear-gradient(180deg,#ffffff 0%,#f2f6ff 100%);
  box-shadow:inset 0 0 0 1px #e3e8f2;
}

.upcoming-event-card__month,
.upcoming-event-card__year{
  color:#5f6368;
  font-size:.82rem;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.upcoming-event-card__day{
  font-family:Comfortaa,Arial,sans-serif;
  color:var(--gold);
  font-size:2.8rem;
  font-weight:700;
  line-height:1.05;
  letter-spacing:-.06em;
  margin:2px 0;
}

.upcoming-event-card__meta{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-bottom:8px;
}

.upcoming-event-card__meta span{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  background:#f1f3f4;
  color:#3c4043;
  font-size:.9rem;
  font-weight:700;
  padding:4px 10px;
}

.upcoming-event-card h2{
  margin:0 0 10px;
  text-align:left;
  font-size:clamp(1.42rem,2.5vw,1.86rem);
  line-height:1.2;
  letter-spacing:-.035em;
}

.upcoming-event-card__speaker{
  margin-bottom:8px!important;
}

.upcoming-event-card p{
  color:#303134;
  max-width:720px;
}

.upcoming-event-card__actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:18px;
}

.upcoming-event-card__actions .google-button{
  padding:8px 16px;
}

.upcoming-empty-state{
  padding:28px 30px;
  background:#f8fafd;
  border:1px solid #eef1f6;
  border-radius:18px;
  text-align:center;
}

@media(max-width:780px){
  .upcoming-event-card{
    grid-template-columns:1fr;
    gap:20px;
    padding:24px;
  }

  .upcoming-event-card__date{
    min-height:auto;
    align-items:flex-start;
    padding:18px 20px;
  }
}
