/* Shared, scoped calendar cards for the public landing pages. */
.calendar-notices[hidden] { display: none; }
.calendar-notices {
  --calendar-bg: #eee5cf; --calendar-ink: #283b3d;
  --calendar-accent: #72561e; --calendar-border: #bfa873;
  width: min(1180px, calc(100% - 48px)); margin: 24px auto;
}
html[data-theme="dark"] .calendar-notices {
  --calendar-bg: #172c30; --calendar-ink: #f1ead3;
  --calendar-accent: #d8bc77; --calendar-border: #746544;
}
.calendar-notices .calendar-notice {
  box-sizing: border-box; width: auto; margin: 0; display: grid;
  grid-template-columns: 160px minmax(0, 1fr) auto;
  align-items: center; gap: 22px; padding: 20px 26px;
  border: 1px solid var(--calendar-border); border-left: 4px solid var(--calendar-accent);
  border-radius: 16px; background: var(--calendar-bg); color: var(--calendar-ink);
}
.calendar-notices .calendar-notice + .calendar-notice { margin-top: 14px; }
.calendar-notices .calendar-notice-art { display: block; max-width: 160px; width: auto; height: 80px; justify-self: center; }
.calendar-notices .calendar-notice-title { margin: 0 0 6px; color: var(--calendar-ink); font-size: 1.15rem; font-weight: 800; line-height: 1.4; letter-spacing: normal; }
.calendar-notices .calendar-notice-date { display: block; margin-bottom: 8px; color: var(--calendar-accent); font-size: .95rem; font-weight: 700; }
.calendar-notices .calendar-notice-text { margin: 0; font-size: .96rem; line-height: 1.65; overflow-wrap: anywhere; }
.calendar-notices .calendar-notice-text + .calendar-notice-text { margin-top: 8px; }
.calendar-notices .calendar-notice-session-link { display: inline-block; color: var(--calendar-accent); font-weight: 800; text-underline-offset: 4px; padding-block: 3px; }
.calendar-notices .calendar-notice-link { display: inline-flex; color: var(--calendar-accent); font-size: .86rem; font-weight: 800; text-underline-offset: 5px; }
.calendar-notices a:focus-visible { outline: 2px solid currentColor; outline-offset: 5px; border-radius: 2px; }
@media (max-width: 1000px) {
  .calendar-notices .calendar-notice { grid-template-columns: 160px minmax(0, 1fr); gap: 14px 18px; padding: 18px 20px; }
  .calendar-notices .calendar-notice-link { grid-column: 2; }
}
@media (max-width: 600px) {
  .calendar-notices { width: calc(100% - 28px); margin-block: 16px; }
  .calendar-notices .calendar-notice { padding: 16px; grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .calendar-notices .calendar-notice-art { justify-self: start; }
  .calendar-notices .calendar-notice-link { grid-column: 1; }
  .calendar-notices .calendar-notice-text { font-size: .9rem; }
}

