.calendar-news { min-width: 0; font-size: 16px; line-height: 1.55; }
.tm-article.calendar-news { padding: 0; box-shadow: none; }
.calendar-news .calendar-published { margin: 0 0 .6rem; color: #66717d; font-size: .9rem; }
.calendar-news .uk-article-title { margin-top: 0; overflow-wrap: anywhere; }
.calendar-news .calendar-intro { font-size: 1em; line-height: 1.6; }
.calendar-news h2 { margin: 1.5rem 0 .8rem; font-size: 1.35rem; }
.calendar-events {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin: 0 0 1.2rem;
  padding: 0;
  list-style: none;
}
.calendar-events > li {
  min-width: 0;
  max-width: none;
  padding: 1rem 1.1rem;
  border: 1px solid #dce2e8;
  border-left: 3px solid #db0000;
  border-radius: 6px;
  background: #fff;
  overflow-wrap: anywhere;
}
.calendar-events .calendar-date { margin: 0 0 .6rem; color: #a90000; font-size: 1em; font-weight: 700; }
.calendar-events h3 { margin: 0 0 .8rem; font-size: 1.05em; font-weight: 600; line-height: 1.45; color: #20242a; }
.calendar-events dl { margin: 0; font-size: .95em; line-height: 1.5; }
.calendar-events dt { color: #66717d; font-weight: 400; }
.calendar-events dd { margin: 0 0 .5rem; }
.calendar-events dd:last-child { margin-bottom: 0; }
.calendar-events .calendar-date-note { margin: .6rem 0 0; color: #66717d; font-size: .88rem; }
.calendar-actions, .calendar-year-links { display: flex; flex-wrap: wrap; gap: .7rem; margin: 1rem 0; }
.calendar-actions a, .calendar-year-links a { display: inline-block; padding: .65rem .9rem; border-radius: 5px; line-height: 1.4; }
.calendar-actions .calendar-open { background: #db0000; color: #fff; text-decoration: none; }
.calendar-year-links a { border: 1px solid #dce2e8; background: #f5f7f9; color: #28313a; }
.calendar-news a:focus-visible { outline: 2px solid #28313a; outline-offset: 3px; }
.calendar-news [id] { scroll-margin-top: 1rem; }
.calendar-news .calendar-season-note { color: #66717d; font-size: .92rem; }
@media (max-width: 767px) {
  .calendar-page .uk-container { padding-left: 0; padding-right: 0; }
  .calendar-page .tm-content { padding: 0; background: transparent; box-shadow: none; }
  .calendar-events { grid-template-columns: 1fr; gap: .75rem; }
  .calendar-events > li { padding: .9rem; }
  .calendar-news .uk-article-title { font-size: 1.65rem; line-height: 1.25; }
  .calendar-actions { flex-direction: column; align-items: stretch; }
  .calendar-actions a { text-align: center; }
}
