.events-page {
  padding-block: var(--s2) var(--s6);
}

.events-page__intro {
  max-width: var(--reading);
  margin-bottom: var(--s5);
}

.events-page__intro .eyebrow,
.events-page__section-heading .eyebrow {
  margin-bottom: var(--s1);
  color: var(--secondary);
}

.events-page__intro .intro {
  margin-bottom: 0;
}

.events-page__intro .events-page__spond-action {
  margin-block: var(--s3);
}

.events-page__intro > :last-child {
  margin-bottom: 0;
}

.events-page__regular,
.events-page__upcoming,
.events-page__consent {
  margin-top: var(--s5);
}

.events-page__regular {
  padding: clamp(1.5rem, 4vw, 3rem);
  background: var(--alternate);
}

.events-page__section-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(15rem, 24rem);
  gap: var(--s3);
  align-items: end;
  margin-bottom: var(--s4);
}

.events-page__section-heading h2 {
  margin: 0;
}

.events-page__section-heading > p {
  margin: 0;
  color: var(--muted);
}

.events-page__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--s3);
}

.events-card {
  padding: var(--s3);
  background: var(--background);
  border-left: 4px solid var(--accent);
}

.events-card h3 {
  margin: 0 0 var(--s1);
}

.events-card__schedule {
  margin-bottom: var(--s1);
  color: var(--secondary);
  font-weight: 800;
}

.events-card__location {
  margin-bottom: var(--s2);
  color: var(--muted);
  font-weight: 700;
}

.events-card > :last-child {
  margin-bottom: 0;
}

.events-list {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--border);
}

.events-list__item {
  border-bottom: 1px solid var(--border);
}

.events-list__event {
  display: grid;
  grid-template-columns: minmax(11rem, .75fr) minmax(0, 2fr);
  gap: var(--s3);
  padding: var(--s3) 0;
}

.events-list__date {
  color: var(--secondary);
  font-weight: 800;
}

.events-list__date time,
.events-list__date span {
  display: block;
}

.events-list__date span {
  color: var(--muted);
  font-weight: 600;
}

.events-list__event h3 {
  margin: 0 0 var(--s1);
}

.events-list__event p,
.events-page__empty {
  margin: 0;
  color: var(--muted);
}

.events-page__calendar-link {
  margin-top: var(--s3);
  margin-bottom: 0;
}

@media (max-width: 47.99rem) {
  .events-page__section-heading,
  .events-page__grid {
    grid-template-columns: 1fr;
  }

  .events-list__event {
    grid-template-columns: 1fr;
    gap: var(--s1);
  }
}

.events-filters { display: flex; flex-wrap: wrap; gap: 1rem; align-items: end; padding: 1.5rem; background: var(--surface-alt, #eef8ff); border-radius: .5rem; }
.events-filters > div { flex: 1 1 12rem; }
.events-filters label { display: block; font-weight: 700; margin-bottom: .5rem; }
.events-filters select, .events-filters input { width: 100%; min-height: 3rem; padding: .6rem; background: white; color: #062b5f; border: 1px solid #a9c6df; border-radius: .25rem; }
.events-view-switch { display: flex; gap: .25rem; margin: 1.5rem 0; }
.events-view-switch a { padding: .65rem 1.5rem; border: 1px solid #a9c6df; border-radius: .25rem; }
.events-view-switch [aria-current] { background: #062b5f; color: white; text-decoration: none; }
.events-pagination { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; margin: 1.5rem 0; }
.events-pagination h3 { margin: 0; }
.events-weekdays, .events-month { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.events-weekdays { text-align: center; font-weight: 700; padding: .75rem 0; }
.events-month { list-style: none; padding: 0; margin: 0; gap: 1px; background: #b7cde2; border: 1px solid #b7cde2; }
.events-month__day { min-height: 8rem; padding: .6rem; background: white; min-width: 0; overflow-wrap: anywhere; }
.events-month__day > time { font-size: .8rem; font-weight: 700; }
.events-month__day article { background: #eef8ff; border-left: 3px solid #009fff; padding: .6rem; margin-top: .75rem; }
.events-month__day h4 { font-size: 1rem; margin: 0 0 .4rem; }
.events-month__day p { font-size: .85rem; margin: .25rem 0; }
.events-month__blank { background: #f6f8fa; }
.events-month__today { box-shadow: inset 0 0 0 2px #006eb8; }
.events-meta { color: #49637e; font-size: .9rem; }
.events-page__empty { padding: 1.5rem; background: #eef8ff; border-radius: .5rem; }
@media (max-width: 63.99rem) {
  .events-weekdays, .events-month__blank, .events-month__empty { display: none; }
  .events-month { display: block; }
  .events-month__day { min-height: auto; border-bottom: 1px solid #b7cde2; padding: 1rem; }
  .events-month__day > time { font-size: 1rem; }
}

.events-page__regular-group { margin: 1.5rem 0; background: #eef8ff; }
 .regular-session-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr));
  gap: 1.25rem;
  margin-block: 1.5rem;
}
.regular-session { padding: 1.5rem; background: #fff; border: 1px solid #b7cde2; border-radius: .5rem; }
.regular-session .regular-session__brand { display: inline-block; margin: 0 0 .75rem; padding: .2rem .65rem; background: #eef8ff; color: #0067a5; border-radius: 1rem; font-size: .9rem; font-weight: 700; }
.regular-session h4 { margin: 0 0 1.25rem; font-size: 1.4rem; line-height: 1.3; }
.regular-session dl { margin: 0; }
.regular-session dl > div { margin-top: .85rem; }
.regular-session dt { color: #49637e; font-size: .875rem; }
.regular-session dd { margin: .15rem 0 0; font-weight: 600; }

.events-filters select {
  appearance: none;
  padding-inline-end: 3rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%23062b5f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 1rem center;
  background-size: 1rem;
}
@media (forced-colors: active) {
  .events-filters select { appearance: auto; background-image: none; }
}

.events-month-navigation {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
  padding: 1.25rem;
  margin: 1.5rem 0 0;
  background: #eef8ff;
  border: 1px solid #b7cde2;
  border-radius: .5rem .5rem 0 0;
}
.events-month-navigation__browse { display: flex; align-items: center; gap: 1.25rem; }
.events-month-navigation h3 { margin: 0; min-width: 12rem; text-align: center; font-size: 1.5rem; }
.events-month-navigation__button {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: .5rem;
  min-height: 2.75rem;
  padding: .5rem 1rem;
  border: 1px solid #8daac6;
  border-radius: .3rem;
  background: white;
  color: #062b5f;
  text-decoration: none;
  font-weight: 700;
  white-space: nowrap;
}
.events-month-navigation__button:hover { background: #062b5f; border-color: #062b5f; color: white; }
.events-month-navigation__button:focus-visible { outline: 3px solid #006eb8; outline-offset: 3px; }
.events-weekdays { background: #f6f8fa; border-inline: 1px solid #b7cde2; }
@media (max-width: 47.99rem) {
  .events-month-navigation { padding: 1rem; }
  .events-month-navigation__browse { display: grid; grid-template-columns: 1fr 1fr; width: 100%; gap: .75rem; }
  .events-month-navigation h3 { grid-row: 1; grid-column: 1 / -1; min-width: 0; }
  .events-month-navigation__today { width: 100%; }
}
