.evtcal {
  --evtcal-bg: var(--color_white, #fff);
  --evtcal-muted: var(--color_muted, #5c6060);
  --evtcal-text: var(--brand-dark, #1a2030);
  --evtcal-accent: var(--color_primary, #4a5a8a);
  --evtcal-accent-soft: var(--color_cloud, #f6f8ff);
  --evtcal-line: var(--color_form_stroke, #E1EEF4);
  --evtcal-radius: 16px;
  --evtcal-shadow: 0 10px 30px rgb(16 24 40 / 8%);
  color: var(--evtcal-text);
  display: grid;
  gap: 40px;
  padding-block: 0 64px;
}

.evtcal-page {
  padding-inline: max(16px, var(--content_gutter_main, 16px));
}

.evtcal-next {
  background: var(--evtcal-bg);
  border: 1px solid var(--evtcal-line);
  border-radius: var(--evtcal-radius);
  box-shadow: var(--evtcal-shadow);
  padding: 15px;
}

.evtcal-next__eyebrow {
  margin: 0 0 16px;
  color: var(--evtcal-accent);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.16em;
}

.evtcal-next__card {
  display: grid;
  gap: 20px;
}

.evtcal-next__media {
  display: block;
  overflow: hidden;
  background: var(--evtcal-accent-soft);
}

.evtcal-next__image,
.evtcal-next__media img {
  width: 100%;
  height: auto;
  object-fit: cover;
}

.evtcal-next__title {
  margin: 0 0 8px;
  font-size: clamp(1.25rem, 2vw, 1.75rem);
  line-height: 1.35;
}

.evtcal-next__title a {
  color: inherit;
  text-decoration: none;
}

.evtcal-next__meta,
.evtcal-next__venue,
.evtcal-next__excerpt {
  margin: 0 0 8px;
  color: var(--evtcal-muted);
  line-height: 1.7;
}

.evtcal-next__action {
  margin: 16px 0 0;
}

.evtcal-next__link {
  display: inline-flex;
  align-items: center;
  gap: 0.4em;
  color: var(--evtcal-accent);
  font-weight: 700;
  text-decoration: none;
}

.evtcal-next__link::after {
  content: "→";
}

.evtcal-calendar {
  margin-inline: calc(50% - 50vw);
  container-type: inline-size;
  background: var(--evtcal-bg);
  border: 1px solid var(--evtcal-line);
  border-radius: var(--evtcal-radius);
  box-shadow: var(--evtcal-shadow);
  padding: var(--content_gutter_main);
}

.evtcal-calendar .fc {
  --fc-border-color: var(--evtcal-line);
  --fc-today-bg-color: var(--evtcal-accent-soft);
  --fc-page-bg-color: transparent;
  --fc-neutral-bg-color: #f7f8fb;
  --fc-button-bg-color: var(--evtcal-accent);
  --fc-button-border-color: var(--evtcal-accent);
  --fc-button-hover-bg-color: var(--brand-dark, #1a2030);
  --fc-button-active-bg-color: var(--brand-dark, #1a2030);
  --fc-event-bg-color: transparent;
  --fc-event-border-color: transparent;
  --fc-event-text-color: var(--evtcal-text);
}

.evtcal-calendar .fc-toolbar {
  gap: 12px;
  margin-bottom: 16px;
}

.evtcal-calendar .fc-toolbar-title {
  font-size: 1.15rem;
}

.evtcal-calendar .fc-button {
  border-radius: 999px;
  padding: 0.35em 0.9em;
  text-transform: none;
  box-shadow: none;
}

.evtcal-calendar .fc-daygrid-day-frame {
  min-height: 100px;
}

.evtcal-calendar .fc-daygrid-day-number {
  font-weight: 700;
}

.evtcal-calendar .fc-event {
  background: transparent;
  border: 0;
  box-shadow: none;
  margin: 4px 0 0;
}

.evtcal-calendar .fc-event-main {
  padding: 0;
}

.evtcal-event {
  display: grid;
  gap: 6px;
  padding: 4px;
  background: #fff;
  overflow: hidden;
}

.evtcal-event__image {
  width: 100%;
  object-fit: cover;
  background: var(--evtcal-accent-soft);
}

.evtcal-event__title {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.4;
  white-space: normal;
}

.evtcal-daylabel {
  display: inline-flex;
  align-items: baseline;
  gap: 0.15em;
}

.evtcal-daylabel__weekday {
  display: none;
  font-size: 0.8em;
  font-weight: 500;
  color: var(--evtcal-muted);
}

.evtcal-single {
  padding-block: 24px 64px;
}

.evtcal-single__eyebrow {
  margin: 0 0 8px;
  color: var(--evtcal-accent, #4a5a8a);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.16em;
}

.evtcal-single__title {
  margin: 0 0 16px;
  font-size: clamp(1.5rem, 3vw, 2.25rem);
  line-height: 1.3;
}

.evtcal-single__meta {
  margin: 0 0 24px;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 8px;
  color: var(--evtcal-muted, #5c6570);
}

.evtcal-single__meta span {
  display: inline-block;
  min-width: 3em;
  margin-right: 0.75em;
  font-weight: 700;
  color: var(--evtcal-text, #1a2030);
}

.evtcal-single__hero {
  overflow: hidden;
  margin-bottom: 24px;
  border-radius: 16px;
}

.evtcal-single__hero img {
  width: 100%;
  height: auto;
  display: block;
}

.evtcal-single__lead {
  margin: 0 0 24px;
  font-size: 1.05rem;
  line-height: 1.8;
}

.evtcal-single__back {
  margin-top: 40px;
}

.evtcal-single__back a {
  color: var(--evtcal-accent, #4a5a8a);
  font-weight: 700;
  text-decoration: none;
}

.fc-day-other {
  background-color: #eee;
}

.evtcal-calendar {
  font-size: .875rem;
}
@media (min-width: 768px) {
  .evtcal-next__card {
    grid-template-columns: minmax(220px, 320px) 1fr;
    align-items: center;
    gap: 32px;
  }

  .evtcal-calendar {
    margin-top: 50px;
    margin-inline: 0;
    border: 0;
    padding: 0;
    box-shadow: none;
  }

  .evtcal-event__title {
    font-size: .75rem;
  }
}

@media (max-width: 767.9px) {
  .evtcal-calendar {
    border-radius: 0;
  }
  .evtcal-calendar .fc-daygrid-body table, .evtcal-calendar .fc-scrollgrid-sync-table {
  border-top: 1px solid var(--evtcal-line);
  }
  .evtcal-calendar .fc-scrollgrid {
    border: 0;
  }
  .evtcal-calendar .fc-toolbar {
    flex-direction: column;
    align-items: flex-start;
  }

  .evtcal-daylabel__weekday {
    display: inline;
  }

  .evtcal-calendar .fc-scrollgrid-section-header,
  .evtcal-calendar table.fc-col-header,
  .evtcal-calendar .fc-col-header-cell,
  .evtcal-calendar .fc-scrollgrid colgroup,
  .evtcal-calendar .fc-scrollgrid-sync-table colgroup,
  .evtcal-calendar td.fc-daygrid-day.fc-day-other {
    display: none !important;
  }

  .evtcal-calendar td {
    border-top: 0;
    border-left: 0;
    border-right: 0;
  }

  .evtcal-calendar .fc-scroller,
  .evtcal-calendar .fc-scroller-harness {
    overflow: visible !important;
    height: auto !important;
  }

  .evtcal-calendar .fc-scrollgrid,
  .evtcal-calendar .fc-scrollgrid tbody,
  .evtcal-calendar .fc-scrollgrid-section,
  .evtcal-calendar .fc-scrollgrid-section > td,
  .evtcal-calendar .fc-daygrid-body,
  .evtcal-calendar .fc-daygrid-body table,
  .evtcal-calendar .fc-scrollgrid-sync-table {
    display: block;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
  }

  .evtcal-calendar .fc-daygrid-body tbody {
    display: flex;
    flex-direction: column;
  }

  .evtcal-calendar .fc-daygrid-week {
    display: flex;
    flex-direction: column;
    gap: 8px;
    width: 100%;
    height: auto !important;
    min-height: 0 !important;
  }

  .evtcal-calendar td.fc-daygrid-day:not(.fc-day-other) {
    display: block !important;
    width: 100% !important;
    border-left: 0;
    border-right: 0;
    overflow: clip;
    background: var(--evtcal-bg);
  }

  .evtcal-calendar .fc-daygrid-day-frame {
    min-height: 0 !important;
    display: flex;
    flex-direction: column;
    padding: 10px 0;
  }

  .evtcal-calendar .fc-event {
    margin-inline: 0!important;
  }

  .evtcal-calendar .fc-daygrid-day:not(:has(.evtcal-event)) .fc-daygrid-day-frame {
    padding: 8px 0;
  }

  .evtcal-calendar .fc-daygrid-day-top {
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
    direction: ltr;
  }

  .evtcal-calendar .fc-daygrid-day-number {
    float: none;
    padding: 0;
    font-size: 0.95rem;
  }

  .evtcal-calendar .fc-daygrid-day-events {
    margin: 0;
    min-height: 0 !important;
  }

  .evtcal-calendar .fc-daygrid-event-harness {
    margin-top: 0;
  }

  .evtcal-event {
    padding: 0;
    border: 0;
    background: transparent;
  }

  .evtcal-event__title {
    font-size: 0.95rem;
  }
}

@media (any-hover: hover) {
  .evtcal-next__title a:hover,
  .evtcal-next__link:hover,
  .evtcal-single__back a:hover {
    text-decoration: underline;
  }

  .evtcal-event:hover {
    border-color: var(--evtcal-accent);
  }
}
